注册 登录
编程论坛 C++教室

有关进制转换的程序,我这样写怎么不行,怎么函数无法调用的?

鸿鹄 发布于 2010-03-30 13:19, 915 次点击
#include <iostream>
#include <iomanip>
using namespace std;
void chg10Tox(int n, int x)
{
   
     if (x=8)
        cout<<"八进制数为:"<<oct<<n<<endl;
     if (x=16)
        cout<<"十六进制数为:"<<hex<<n<<endl;
     if (x=2)
     {  
         int a[10],i,count;
         
         for(i=0,count=0;n/x!=0;i++)//如果商不为0,不断循环
         {
               a[i]=n%x; //取余数赋给数组
                n=n/x;
                count++;//计算数组长度
         }
         for(i=count;i>0;i--)
             cout<<a[i];//将数组倒序输出
               
           

     }

}

int main()
{   
    int a,b;
    cout<<"输入十进制数及转换进制基数:";
    cin>>a>>b;
    void chg10Tox(int a, int b);
    return 0;
}
9 回复
#2
鸿鹄2010-03-30 13:23
而且我第二次试了不用调用函数的方法也不行
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{   
    int n,x;
    cout<<"输入十进制数及转换进制基数:";
    cin>>n>>x;
    if (x=8)
        cout<<"八进制数为:"<<oct<<n<<endl;
     if (x=16)
        cout<<"十六进制数为:"<<hex<<n<<endl;
     if (x=2)
     {  
         int a[10],i,count;
         
         for(i=0,count=0;n/x!=0;i++)//如果商不为0,不断循环
         {
               a[i]=n%x; //取余数赋给数组
                n=n/x;
                count++;//计算数组长度
         }
         for(i=count;i>0;i--)
             cout<<a[i];//将数组倒序输出
     }
               
    return 0;
}

不知道是什么原因,我觉得我的思路是对的啊,而且很奇怪,为什么会同时输出转换后的二进制,和八进制?
#3
hahayezhe2010-03-30 13:37
=和 ==是有区别的
#4
wei00002010-03-30 15:17
应该是if(x==8),下面也是一样的
  for(i=0,count=0;n/x!=0;i++)//如果商不为0,不断循环
         {
               a[i]=n%x; //取余数赋给数组
                n=n/x;
                count++;//计算数组长度
         }
         a[i]=n%x;//这里应该在取模一次,因为你最后一位没计算
         for(i=count;i>0;i--)
             cout<<a[i];//将数组倒序输出
#5
mghxz2522010-03-30 16:34
紧接4楼的,
程序代码:
应该是if(x==8),下面也是一样的
  for(i=0,count=0;n/x!=0;i++)//如果商不为0,不断循环
         {
               a[i]=n%x; //取余数赋给数组
                n=n/x;
                count++;//计算数组长度
         }
         a[i]=n%x;//这里应该在取模一次,因为你最后一位没计算
         for(i=count;i>=0;i--)//这里应改为i>=0,否则得话无法输出最后一位
             cout<<a[i];//将数组倒序输出

#6
鸿鹄2010-03-30 17:13
谢谢啦,我终于搞定了,”=和 ==是有区别的“ 太粗心,没发现;
#7
秀痘魔导士2010-03-30 17:24
以下是引用鸿鹄在2010-3-30 17:13:33的发言:

谢谢啦,我终于搞定了,”=和 ==是有区别的“ 太粗心,没发现;
if (8 == x)
以后这么写,习惯了容易发现错误
#8
鸿鹄2010-03-30 23:52
7楼开玩笑喽,怎么可能那样写。
#9
cnfarer2010-03-31 08:19
回复 8楼 鸿鹄
7楼是专业程序员的做法!!!
#10
dht12112010-03-31 20:29
怎么我试了下还是一样不能调用函数?
1