| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 915 人关注过本帖
标题:有关进制转换的程序,我这样写怎么不行,怎么函数无法调用的?
只看楼主 加入收藏
鸿鹄
Rank: 2
等 级:论坛游民
帖 子:51
专家分:10
注 册:2009-3-20
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:9 
有关进制转换的程序,我这样写怎么不行,怎么函数无法调用的?
#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;
}
搜索更多相关主题的帖子: 函数 进制 
2010-03-30 13:19
鸿鹄
Rank: 2
等 级:论坛游民
帖 子:51
专家分:10
注 册:2009-3-20
收藏
得分:0 
而且我第二次试了不用调用函数的方法也不行
#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;
}

不知道是什么原因,我觉得我的思路是对的啊,而且很奇怪,为什么会同时输出转换后的二进制,和八进制?
2010-03-30 13:23
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:2 
=和 ==是有区别的
2010-03-30 13:37
wei0000
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:136
注 册:2010-3-12
收藏
得分: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--)
             cout<<a[i];//将数组倒序输出
2010-03-30 15:17
mghxz252
Rank: 2
等 级:论坛游民
帖 子:40
专家分:60
注 册:2010-1-18
收藏
得分:1 
紧接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];//将数组倒序输出 

2010-03-30 16:34
鸿鹄
Rank: 2
等 级:论坛游民
帖 子:51
专家分:10
注 册:2009-3-20
收藏
得分:0 
谢谢啦,我终于搞定了,”=和 ==是有区别的“ 太粗心,没发现;
2010-03-30 17:13
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
收藏
得分:1 
以下是引用鸿鹄在2010-3-30 17:13:33的发言:

谢谢啦,我终于搞定了,”=和 ==是有区别的“ 太粗心,没发现;
if (8 == x)
以后这么写,习惯了容易发现错误
2010-03-30 17:24
鸿鹄
Rank: 2
等 级:论坛游民
帖 子:51
专家分:10
注 册:2009-3-20
收藏
得分:0 
7楼开玩笑喽,怎么可能那样写。
2010-03-30 23:52
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:1 
回复 8楼 鸿鹄
7楼是专业程序员的做法!!!

★★★★★为人民服务★★★★★
2010-03-31 08:19
dht1211
Rank: 2
等 级:论坛游民
帖 子:9
专家分:35
注 册:2010-3-23
收藏
得分:1 
怎么我试了下还是一样不能调用函数?
2010-03-31 20:29
快速回复:有关进制转换的程序,我这样写怎么不行,怎么函数无法调用的?
数据加载中...
 
   



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

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