作业帮 > 综合 > 作业

2道C语言题目1.程序提示用户输入三个字符,每个字符取值范围是0-9,A-F.然后程序会把这三个字符转化为相应的十六进制

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/17 21:46:09
2道C语言题目
1.
程序提示用户输入三个字符,每个字符取值范围是0-9,A-F.然后程序会把这三个字符转化为相应的十六进制整数,并分别以十六进制,十进制,八进制输出.
输入格式:输入只有一行,即三个字符.
输出格式:输出只有一行,包括三个整数,中间用空格隔开.
输入输出样例
输入样例:
FFF
输出样例:
FFF 4095 7777
2.
  编写一个程序,输入一个1000 以内的正整数,然后把这个整数的每一位数字都分离出来,并逐一地显示.
  输入格式:输入只有一行,即一个1000以内的正整数.
  输出格式:输出只有一行,即该整数的每一位数字,之间用空格隔开.
  输入输出样例
样例输入
769
样例输出
7 6 9
1题输入三个字符,非一个16进制数.题目要求如此表达
//

//第一个程序
#include <stdio.h>
int main()
{
char ch;
int count = 0;
int num[3];
int myNum;
printf("请输入三个字符:0-9,A-F\n");
while( (ch = getchar()) && count <3)
{
if (ch >= '0' && ch <= '9')
{
num[count++] = ch - 48;
}
else if (ch >= 'A' && ch <= 'Z')
{
num[count++] = ch - 55;
}
else
{
fflush(stdin);
count = 0;
printf("输入不正确,请重新输入\n");
}
}
myNum = 16*16*num[0] + 16 * num[1] + num[2];
printf("%X %d %o\n", myNum, myNum, myNum);
return 0;
}

//第二个程序
#include <stdio.h>
int main()
{
int Num;
printf("请输入一个小于1000的正整数\n");
while(1 == scanf("%d", &Num) && (1 <= Num && 1000 > Num))
{
if (Num/100)
{
printf("%d ", Num/100);
}
if (Num%100/10)
{
printf("%d ",Num%100/10);
}
printf("%d \n",Num%10);
}
printf("输入错误,程序结束\n");
return 0;
}