C语言编程。利用函数实现进制转换。

要求编写函数atod(),能把连续输入的4个10进制字符转换成一个十进制整数,如输入’8’’6’’7’’0’,输出8670。;编写函数atox()能把连续输入的3个16进... 要求编写函数atod(),能把连续输入的4个10进制字符转换成一个十进制整数,如输入’8’’6’’7’ ’0’,输出8670。;编写函数atox()能把连续输入的3个16进制字符转换成一个十进制整数,如输入’F’’B’’3’,输出4019。请在main函数中进行最多10次上述函数的调用,具体调用哪个函数根据每次出现菜单的选项决定,程序菜单如下所示:
Please select:
1—for conversion from 4-Decimal-Characters to a decimal integer
2—for conversion from 3-Hexadecimal-Characters to a decimal integer
0—Exit
Enter your choice:
展开
 我来答
xylanh
2011-04-16 · TA获得超过270个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:233万
展开全部
随便写了个

#include<stdio.h>
int atod(char a, char b, char c, char d){
return (a % 0x30) * 1000 + (b % 0x30) * 100 + (c % 0x30) * 10 + (d % 0x30);
}
int atox(char a, char b, char c){
unsigned int n;
a = a | 0x20;
b = b | 0x20;
c = c | 0x20;
n = (a > 0x3a ? a % 0x57 : a % 0x30) * 0x100;
n = n + (b > 0x3a ? b % 0x57 : b % 0x30) * 0x10;
n = n + (c > 0x3a ? c % 0x57 : c % 0x30);
return n;
}
int main(){
int n;
char a, b, c, d, t;
for(n = 0; n < 10; n++){
printf(" 1 - for conversion from 4-Decimal-Characters to a decimal integer\n\
2 - for conversion from 3-Hexadecimal-Characters to a decimal integer\n\
0 - Exit\n");
t = getch();
if(t == '1'){
printf("conversion from 4-Decimal-Characters\n");
scanf("%c %c %c %c", &a, &b, &c, &d);
printf("%d\n", atod(a, b, c, d));
} else if(t == '2') {
printf("conversion from 3-Hexadecimal-Characters\n");
scanf("%c %c %c", &a, &b, &c);
printf("%d\n", atox(a, b, c));
} else {
break;
}
}
return 0;
}
更多追问追答
追问
谢谢,不过刚运行了一下,结果不对啊
追答
== 第二次输入的好象是问题
斋飞尘0HI
2011-04-16 · TA获得超过111个赞
知道答主
回答量:238
采纳率:0%
帮助的人:126万
展开全部
要写代码的 答案 给5分怕是不够吧
追问
没办法啊,我知道是挺麻烦的,但我就剩五分了,全压上了。
大哥帮帮忙啊,今晚就要交了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式