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

 我来答
刺任芹O
2022-11-16 · TA获得超过6.2万个赞
知道顶级答主
回答量:38.7万
采纳率:99%
帮助的人:9013万
展开全部

不对的原因,主要是if条件语句应该是用“==”而不是“=”,这是判断,不是赋值。其它的错误,scanf_s("%d",&a)改成scanf("%d",&a),printf用错了,printf打印应该是一个占位符对应一个要输出的内容,就是你代码中%d对应一个输出。

修改后的代码:

#include<stdio.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);

}

修正后的代码执行如下:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式