导读 关于c语言给一个不多于5位的正整数,要求求出它是几位数这个问题很多朋友还不知道,今天小六来为大家解答以上的问题,现在让我们一起来看看
关于c语言给一个不多于5位的正整数,要求求出它是几位数这个问题很多朋友还不知道,今天小六来为大家解答以上的问题,现在让我们一起来看看吧!
1、不对的原因,主要是if条件语句应该是用“==”而不是“=”,这是判断,不是赋值。
2、其它的错误,scanf_s("%d",&a)改成scanf("%d",&a),printf用错了,printf打印应该是一个占位符对应一个要输出的内容,就是你代码中%d对应一个输出。
3、修改后的代码:#includeint main(){int a, b, c, d, e, f, w;printf("输入一个不多于五位的整数:");scanf("%d",&a);//第一问,求出它是几位数b = 10000 - a;c = 1000 - a;d = 100 - a;e = 10 - a;f = 0 - a;while (a < 0 || a > 99999)printf("输入错误,请重新输入");if (b < 0){printf("a是五位数");w = 5;}else if (c < 0){printf("a是四位数");w = 4;}else if (d < 0){printf("a是三位数");w = 3;}else if (e < 0){printf("a是两位数");w = 2;}else if (f < 0){printf("a是个位数");w = 1;}elseprintf("输入错误,请重新输入");//第二问,分别输出每一位数字if (w == 5)printf("%d %d %d %d %d", a / 10000, a / 1000 % 10, a / 100 % 10, a / 10 % 10, a % 10);if (w == 4)printf("%d %d %d %d", a / 1000 % 10, a / 100 % 10, a / 10 % 10, a % 10);if (w == 3)printf("%d %d %d", a / 100 % 10, a / 10 % 10, a % 10);if (w == 2)printf("%d %d", a / 10 % 10, a % 10);if (w == 1)printf("%d", a % 10);//第三问,按逆序输出各位数字if (w == 5)printf("%d %d %d %d %d", a % 10, a / 10 % 10, a / 100 % 10, a / 1000 % 10, a / 10000);if (w == 4)printf("%d %d %d %d", a % 10, a / 10 % 10, a / 100 % 10, a / 1000 % 10);if (w == 3)printf("%d %d %d", a % 10, a / 10 % 10, a / 100 % 10);if (w == 2)printf("%d %d", a % 10, a / 10 % 10);if (w == 1)printf("%d", a % 10);}修正后的代码执行如下:。
本文分享完毕,希望对大家有所帮助。
标签: