初学者,问下有什么错误

img


初学,麻烦各位帮我看看有什么错误,我感觉没啥问题,但是显示答案错误谢谢啦

输入样例是只输入一个数字,但你的程序是输入三个数。肯定是不行的


#include <stdio.h>

int main() {
    int number;
    scanf("%d", &number);
    if (number < 100 || number > 999) {
        printf("Please input a three digits number.");
    } else {
        printf("%d = %d + %d*10 + %d*100", number, number % 10,
               number / 10 % 10, number / 100);
    }
    return 0;
}

输出中不应有空格

你这样读三个宽度各为一位的整数就已经假定输入的数是三位数了。你就无法处理像两位数和四位数的情况。

可能因为是需要把输入的这个数存入一个整数变量中,而不是存入三个整数变量中。下面是这种思路的一个实现,供参考:

#include <stdio.h>

int main(void){
    
//    int a,b,c;
//    scanf("%1d%1d%1d",&a,&b,&c);
    
//    if(100<=1*100+b*10+c&&a*100+b*10+c<=999){
//        printf("%d = %d + %d*10 + %d*100\n",a*100+b*10+c,c,b,a);
//    }else{
//        printf("Please input a three digits number.\n");
//    }

    int num;
    scanf("%d",&num);
    
    if(num>=100&&num<=999){
        
        int one = num%10;
        int ten = num/10%10;
        int hundred = num/100;
        
        printf("%d = %d + %d*10 + %d*10",num, one ,ten ,hundred); 
        
        
    }else{
        printf("Please input a three digits number.\n");
    }
    
    return 0;
} 

img