
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: 展开
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: 展开
2个回答
展开全部
随便写了个
#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;
}
#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;
}
更多追问追答
追问
谢谢,不过刚运行了一下,结果不对啊
追答
== 第二次输入的好象是问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询