| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 520 人关注过本帖
标题:[求助]进制转换程序出错
只看楼主 加入收藏
cjdevil12345
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2005-12-10
收藏
 问题点数:0 回复次数:7 
[求助]进制转换程序出错

#include<stdio.h>
void main()
{
int a[10],b,i=0,base;
printf("please input your number:");
scanf("%d",&b);
printf( "你想转换的进制(大于等于0小于等于16):");
scanf("%d",&base);
printf("%d\n",base);
if(base<0||base>16 )
printf("error!");
while(b!=0&&i<10)
{
a[i]=b%base;
b=b/base;
i++;
}
for(i;i>=0;i--)
{
switch(a[i])
{
case'10':printf("A");break;
case'11':printf("B");break;
case'12':printf("C");break;
case'13':printf("D");break;
case'14':printf("E");break;
case'15':printf("F");break;
default:printf("%d",a[i]);break;
}
}
}

在这个程序中我输入2, 想转换为2进制,却得不到正确结果.
这是怎么回事啊

2006-05-15 22:23
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
给个方便的
[CODE]

#include "stdio.h"
#include "math.h"
#include "stdlib.h"
int main()
{
int base,data;
char result[20];

scanf("%d%d",&data,&base);
itoa( fabs(data),result,base); /*可处理负数*/
printf("%c%s\n",data>=0?32:45,result);
return 0;
}

[/CODE]

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-15 23:01
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
#include<stdio.h>
void main()
{
int a[10],b,i=0,base;
printf("please input your number:");
scanf("%d",&b);
printf( "你想转换的进制(大于等于0小于等于16):");
scanf("%d",&base);
printf("%d\n",base);
if(base<0||base>16 )
printf("error!");
while(b!=0&&i<10)
{
a[i]=b%base;
b=b/base;
i++;
}
for(i = i - 1;i>=0;i--)
{
switch(a[i])
{
case 10:
printf("A");break;
case 11:
printf("B");break;
case 12:
printf("C");break;
case13:
printf("D");break;
case 14:
printf("E");break;
case 15
:printf("F");break;
default:
printf("%d",a[i]);break;
}
}
}

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-15 23:13
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

楼主的做了一点改动
[CODE]
#include "stdio.h"
int main()
{
int a[20],b,i=0,base;

printf("please input your number:");
scanf("%d",&b);
printf( "你想转换的进制(大于等于0小于等于16):");
scanf("%d",&base);

if(base<0||base>16 )
{
printf("error!");
exit(-1);
}
if(b<0)
{
b*=-1;
printf("%c",45);
}
while(b!=0)
{
a[i]=b%base;
b=b/base;
i++;
}
for(i-=1;i>=0;i--)
{
switch(a[i])
{
case 10 :printf("A");break;
case 11 :printf("B");break;
case 12 :printf("C");break;
case 13 :printf("D");break;
case 14 :printf("E");break;
case 15 :printf("F");break;
default:printf("%d",a[i]);break;
}
}
printf("\n");
return 0;
}



[/CODE]


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-15 23:14
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
我先了

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-15 23:15
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
四楼抄袭我的

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-15 23:15
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

抄你的?输入-10,2两程序输出相同?


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-15 23:17
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

而且多了个 exit(-1);作用不言自明


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-15 23:20
快速回复:[求助]进制转换程序出错
数据加载中...
 
   



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

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