大一新生的C之路
大学C语言老师一个作业
描述:从键盘输入一个不多于5位数的正整数,要求:1、求出他是几位数;2、分别打印每一个数字;3、按逆序打印出各位数字,例如原数为321,应输出123.
#include<stdio.h>
int main()
{
int x ;
int g, s, b, q, w;
printf("请输入一个不大于5位的正整数:");
scanf_s("%d", &x);
if (x < 100000 && x>-1)
{
w = x / 10000;
q = x / 1000 % 10;
b = x / 100 % 10;
s = x / 10 % 10;
g = x % 10;
if (x < 10 && x>-1 )
{
printf("该数为1位数\n");
printf("个位为%d\n", g);
printf("%d\n", g);
}
else if (x > 9 && x < 100)
{
printf("该数为2位数\n");
printf("十位为%d,个位为%d\n",s,g );
printf("%d%d\n", g, s);
}
else if (x > 99 && x < 1000)
{
printf("该数为3位数\n");
printf("百位为%d,十位为%d,个位为%d\n", b,s,g);
printf("%d%d%d\n", g, b, s);
}
else if (x > 999 && x < 10000)
{
printf("该数为4位数\n");
printf("千位为%d,百位为%d,十位为%d,个位为%d\n",q,b,s,g);
printf("%d%d%d%d\n", g, s, b, q);
}
else if (x > 9999 && x < 100000)
{
printf("该数为5位数\n");
printf("万位为%d,千位为%d,百位为%d,十位为%d,个位为%d\n", w,q,b,s,g);
printf("%d%d%d%d%d\n", g, s, b, q, w);
}
}
else
{
printf("输入有误\n");
}
return 0;
}
运行试验
新手一个,大佬们如果看出来有什么不妥的或者跟好的方法,欢迎过来评论。谢谢大佬