| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 386 人关注过本帖
标题:新手请教一个进制转换的问题 不知为何电脑运行这个的时候出错了
只看楼主 加入收藏
JimzChu
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-12-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
新手请教一个进制转换的问题 不知为何电脑运行这个的时候出错了
代码内容如下
#include<stdio.h>
void ten_two(int x)//定义十进制转二进制的函数
{
    int a;
    if(x==0)
        return;
    a=x%2;
    x=x/2;
    ten_two(x);
    printf("%d",a);
}

int main()
{
    int sum;
    void ten_two(int);
    printf(">>请输入一个十进制数:\n");
    scanf("%d",&sum);
    printf("转换后的二进制数为:");
    ten_two(sum);
    printf('\n');
    return 0;
}
写完这个 连接和组建都没问题
打开之后 输入一个数之后出现了这个 只能向大家求助了
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include return 二进制 十进制 
2013-12-22 16:28
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
收藏
得分:10 
void ten_two(int x)//定义十进制转二进制的函数
{
    int a;
    if(x==0)
        return;
    a=x%2;
    x=x/2;
    ten_two(x);
    printf("%d",a);
}

不知道具体原因~ 嗯 你这个应该是函数类型的问题吧
void无返回值吧。。
if(x==0)
        return;
好像问题在这里。。。

错了表喷~

未知令人期待!
2013-12-22 16:31
JimzChu
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-12-21
收藏
得分:0 
回复 2楼 神机军师
改为int类型 加上return 0 还是不行啊- -运行起来还是会这样子
2013-12-22 16:34
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
收藏
得分:0 
#include<stdio.h>
void ten_two(int x)//定义十进制转二进制的函数
{
    int a;
    if(x==0)
        return;
    else
    {
        a=x%2;
        x=x/2;
        ten_two(x);
        printf("%d",a);
    }
}

void main()
{
    int sum;
    void ten_two(int);
    printf(">>请输入一个十进制数:\n");
    scanf("%d",&sum);
    printf("转换后的二进制数为:");
    ten_two(sum);
    printf("\n");
}


另外还有一个小问题~~ 你的最后一句printf('\n');
应该是printf("\n");  括号里面应该是双引号,代表字符串 不能单引号。

未知令人期待!
2013-12-22 16:47
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
收藏
得分:0 
至于前面 if else 语句 其实用你自己的那个(不加else)也是可以的了~

未知令人期待!
2013-12-22 16:48
JimzChu
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-12-21
收藏
得分:0 
回复 5楼 神机军师
很伤心的告诉你- -还是不行继续等答案
2013-12-22 16:52
神机军师
Rank: 7Rank: 7Rank: 7
来 自:游鱼潜水
等 级:黑侠
威 望:2
帖 子:202
专家分:542
注 册:2013-12-21
收藏
得分:0 
诶? 什么情况~~~ 我的调试成功了呀 发出来结果看看

未知令人期待!
2013-12-22 16:56
情.难言ゝ
Rank: 3Rank: 3
来 自:安徽安庆
等 级:论坛游侠
威 望:1
帖 子:74
专家分:137
注 册:2013-9-8
收藏
得分:10 
你好,把printf(‘\n);改成printf("\n");后,在我的电脑上是可以运行的,没有错误。。。至于你的上面不行可能是你程序的问题吧,重新安装一下试试

树叶的离去,是风的追求、还是树的不挽留???
2013-12-22 16:58
JimzChu
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-12-21
收藏
得分:0 
回复 8楼 情.难言ゝ
我的是win8的机子 不知道是不是系统原因T.T就差这个大作业就可以完成了啊
2013-12-22 17:11
JimzChu
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-12-21
收藏
得分:0 
终于做好了 十进制转二进制 我用数组做好的
【PS:有同学问我为何不直接用指针写 因为我想写的是一个以一个int传参 返回结果是一个int的转换函数 技术有限 所以写了这个】
附上该部分代码
程序代码:
#include<stdio.h>
#include<math.h>
int ten_two(int x)//定义十进制转二进制的函数
{
    int i,re=0;
    int b[15];
      for(i=0;i<15;i++)
    {
        b[i]=x%2;
        x=x/2;
    }
    for(i=15;i>0;i--)
    {
        re+=b[i]*((int)pow(10,i));
    }
    return (re);
}

int main()
{
    int sum;
    int ten_two(int );
    printf(">>请输入一个十进制数:");
    scanf("%d",&sum);
    printf("转换后的二进制数为:%d\n",ten_two(sum));
    return 0;
}
2013-12-22 23:51
快速回复:新手请教一个进制转换的问题 不知为何电脑运行这个的时候出错了
数据加载中...
 
   



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

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