用C语言编程:给一个不多于5位的正整数,要求如下:
来源:网络收集 点击: 时间:2024-06-02不对的原因,主要是if条件语句应该是用“==”而不是“=”,这是判断,不是赋值。其它的错误,scanf_s(%d,a)改成scanf(%d,a),printf用错了,printf打印应该是一个占位符对应一个要输出的内容,就是你代码中%d对应一个输出。
修改后的代码:
#includestdio.h
int 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;
}else
printf(输入错误,请重新输入\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);
}
修正后的代码执行如下:
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_871700.html