| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1425 人关注过本帖
标题:简单的10进制换2进制 想知道这段代码是哪里出了问题 求助!!!!!
只看楼主 加入收藏
新手菜鸟鸟
Rank: 2
等 级:论坛游民
帖 子:37
专家分:57
注 册:2012-1-15
结帖率:85.71%
收藏
已结贴  问题点数:10 回复次数:23 
简单的10进制换2进制 想知道这段代码是哪里出了问题 求助!!!!!
#include <stdio.h>
int main()
{
    int i,j,m,n;
    int a[16]={0};
printf("input the decimalism number(0~32767):\n");
scanf("%d",&n);
for (m=0;m<15;m++);
{
    i=n%2;
    j=n/2;
    n=j;
    a[m]=i;
}
for (m=15;m>=0;m++)
{
    printf("%d",a[m]);
    if(m%4==0)
    printf(" ");
}
getchar();
return 0;
}
搜索更多相关主题的帖子: include return number 
2012-01-15 11:32
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:10 
没仔细看,先把这个分号去了
for (m=0;m<15;m++);
收到的鲜花

总有那身价贱的人给作业贴回复完整的代码
2012-01-15 11:40
新手菜鸟鸟
Rank: 2
等 级:论坛游民
帖 子:37
专家分:57
注 册:2012-1-15
收藏
得分:0 
回复 2楼 embed_xuel
!!!我晕...果然是这个问题...脑残了...谢了。
2012-01-15 11:51
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
看到这样帖子总喜欢把自己看过的代码拿出来晒晒哈,自己也回味一下
当然只能转换0到255,主要看方法了^^;
程序代码:
void dec_bin(int number) {
      int x, y;
      x = y = 0;

     for(y = 7; y >= 0; y--) {
          x = number / (1 << y);       /* 也就是把一放到不同位置了 */
          number = number - x * (1 << y);
          printf("%d", x);
     }
      printf("\n");
}



[ 本帖最后由 madfrogme 于 2012-1-15 12:26 编辑 ]

The quieter you become, the more you can hear
2012-01-15 12:24
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 3楼 新手菜鸟鸟
你代码还有问题

总有那身价贱的人给作业贴回复完整的代码
2012-01-15 12:26
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
因为一直除以2,感觉是不是可以用递归也可能?

The quieter you become, the more you can hear
2012-01-15 12:30
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
可以尝试单步调试下。

梅尚程荀
马谭杨奚







                                                       
2012-01-15 12:33
weipeng1217
Rank: 5Rank: 5
等 级:职业侠客
帖 子:175
专家分:386
注 册:2012-1-12
收藏
得分:0 
#include <stdio.h>
void main()
 {
     int i,j,m,n,k;
     int a[16]={0};
     i=j=k=m=n=0;
 printf("input the decimalism number(0~32767):\n");
 scanf("%d",&n);
 while(n!=0)
 {
     i=n%2;
     j=n/2;
     n=j;
     a[m]=i;
     m++;
 }
 for (k=15;k>=0;k--)
 {
 printf("%d",a[k]);
   if(k%4==0)
     printf(" ");
 }
 printf("\n");

 }

[ 本帖最后由 weipeng1217 于 2012-1-15 15:57 编辑 ]

C坛友交流群 群号:161091913 ,欢迎经常在线的朋友加入,一起学习,一起进步。。
2012-01-15 13:17
weng_8231076
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-12-29
收藏
得分:0 
第二个for循环里面应该是m--吧,要不然成死循环了。
还有二楼说的;去掉就可以了
2012-01-15 15:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 4楼 madfrogme
你這個代碼假定int是8位的,未必喲,最好不要有這種假定。按照程序設計的忠告,除了0和1,最好不要有硬編碼,雖然這個勸告未必要百分百遵守,但在寫出初值為7之前,最好推敲一下是否真是7。

授人以渔,不授人以鱼。
2012-01-15 16:37
快速回复:简单的10进制换2进制 想知道这段代码是哪里出了问题 求助!!!!!
数据加载中...
 
   



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

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