标题:我这个八进制转十进制的程序什么地方错了,我觉得挺对,但是就是得不到正确 ...
只看楼主
山科大梦
Rank: 2
等 级:论坛游民
帖 子:26
专家分:15
注 册:2012-3-13
结帖率:75%
 问题点数:0 回复次数:4 
我这个八进制转十进制的程序什么地方错了,我觉得挺对,但是就是得不到正确结果
#include<iostream>
#include<cmath>
using namespace std;

void convert()
{
    int z=0,m=0,n;
    cin>>n;
    while(n)
    {
        n=n/10;
        m++;
    }
    while(m>0)
    {
        z=z+(n/pow(10,m-1))*pow(8,m-1);
        n=n-pow(10,m-1);
        --m;
    }
    cout<<z<<endl;
   
}

int main()
{
    cout<<"请输入八进制n:"<<endl;
    convert();
    return 0;
}
搜索更多相关主题的帖子: void convert include 八进制 
2012-11-05 17:51
山科大梦
Rank: 2
等 级:论坛游民
帖 子:26
专家分:15
注 册:2012-3-13
得分:0 
求助啊,坐等
2012-11-05 21:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
当到while(m>0)时,n已经是零了。更主要的是 pow 返回类型是浮点数

程序代码:
unsigned convert( unsigned n )
{
    unsigned r = 0;
    for( unsigned s=1; n!=0; s*=8,n/=10 )
        r += (n%10)*s;
    return r;
}

#include <iostream>
using namespace std;

int main()
{
    cout<<"请输入八进制n:"<<endl;
    unsigned n;
    cin >> n;
    unsigned r = convert( n );
    cout << r << endl;

    return 0;
}


2012-11-06 08:46
mmmmmmmmmmmm
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:8
帖 子:388
专家分:1809
注 册:2012-11-2
得分:0 
感谢 学习了

以下是引用rjsp在2012-11-6 08:46:39的发言:

当到while(m>0)时,n已经是零了。更主要的是 pow 返回类型是浮点数

unsigned convert( unsigned n )
{
    unsigned r = 0;
    for( unsigned s=1; n!=0; s*=8,n/=10 )
        r += (n%10)*s;
    return r;
}

#include <iostream>
using namespace std;

int main()
{
    cout<<"请输入八进制n:"<<endl;
    unsigned n;
    cin >> n;
    unsigned r = convert( n );
    cout << r << endl;

    return 0;
}

我们的目标只有一个:消灭0回复!
while(1)
++money;
2012-11-06 09:40
山科大梦
Rank: 2
等 级:论坛游民
帖 子:26
专家分:15
注 册:2012-3-13
得分:0 
回复 3楼 rjsp
您提的第一个问题我发现了,可是pow那个不太懂,能不能利用我原有的程序改一下,谢谢
2012-11-06 14:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-385983-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.215163 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved