猿问

代码运行有错,求帮忙看一下哪里错了

代码case 5那里运行有问题,求帮忙看下怎么改,谢谢!

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a=0;
    int b=10;
    int c=1;
    printf("请输入一个不大于五位的正整数:\n");
    scanf("%d",&a);
    if(a<100000)
    {
        while(a/b != 0)
        {
            b = b*10;
            c++;
        }
        printf("该数的位数为:%d\n",c);
        switch(c)
        {
            case 1:
                printf("变化后的数为%d",10-a);
                break;
            case 2:
                printf("变化后的数为%d%d",10-a/10,10-a%10);
                break;
            case 3:
                printf("变化后的数为%d%d%d",10-a/100,10-a/10%10,10-a%10);
                break;
            case 4:
                printf("变化后的数为%d%d%d%d",10-a/1000,10-a/100%10,10-a/10%10,10-a%10);
                break;
            case 5:
                printf("变化后的数为%d%d%d%d%d",10-a/10000,10-a/1000%10,10-a/100%10,10-a%10);
                break;
        }
    }
    else
    {
        printf("错误\n");
    }
    return 0;
}


一纸白书
浏览 1372回答 4
4回答

慕粉4078870

删掉一个%d

慕粉2006446532

case 5多了一个%d

Xyino_Snake

这是要求什么东西啊?问题一楼已经说了。参数的数量不匹配。但是我很好奇这个程序是求什么数。 不管算法是什么,你都可以先把这个数生成之后,再单一输出。不必为了获得字符串而这么费劲。
随时随地看视频慕课网APP
我要回答