多语言展示
当前在线:1267今日阅读:23今日分享:31

用C语言编程:给一个不多于5位的正整数,要求如下:

不对的原因,主要是if条件语句应该是用“==”而不是“=”,这是判断,不是赋值。其它的错误,scanf_s('%d',&a)改成scanf('%d',&a),printf用错了,printf打印应该是一个占位符对应一个要输出的内容,就是你代码中%d对应一个输出。修改后的代码:#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('输入错误,请重新输入\n');if (b < 0){printf('a是五位数\n');w = 5;}else if (c < 0){printf('a是四位数\n');w = 4;}else if (d < 0){printf('a是三位数\n');w = 3;}else if (e < 0){printf('a是两位数\n');w = 2;}else if (f < 0){printf('a是个位数\n');w = 1;}elseprintf('输入错误,请重新输入\n');//第二问,分别输出每一位数字if (w == 5)printf('%d %d %d %d %d\n', a / 10000, a / 1000 % 10, a / 100 % 10, a / 10 % 10, a % 10);if (w == 4)printf('%d %d %d %d\n', a / 1000 % 10, a / 100 % 10, a / 10 % 10, a % 10);if (w == 3)printf('%d %d %d\n', a / 100 % 10, a / 10 % 10, a % 10);if (w == 2)printf('%d %d\n', a / 10 % 10, a % 10);if (w == 1)printf('%d\n', a % 10);//第三问,按逆序输出各位数字if (w == 5)printf('%d %d %d %d %d\n', a % 10, a / 10 % 10, a / 100 % 10, a / 1000 % 10, a / 10000);if (w == 4)printf('%d %d %d %d\n', a % 10, a / 10 % 10, a / 100 % 10, a / 1000 % 10);if (w == 3)printf('%d %d %d\n', a % 10, a / 10 % 10, a / 100 % 10);if (w == 2)printf('%d %d\n', a % 10, a / 10 % 10);if (w == 1)printf('%d\n', a % 10);}修正后的代码执行如下:
推荐信息