关于#c语言#的问题:在进行三位数反转的时候这两段代码有啥区别

在进行三位数反转
的时候这两段代码有啥区别?
第一段

#include
int main()
{
    int n;
    
    while(scanf("%d", &n)!=EOF){
        while(n>0){
            printf("%d", n%10);
            n /= 10;
        }
    }
    
    return 0;
    
}

第二段

#include
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF) 
        printf("%03d\n",n%10*100+n/10%10*10+n/100); 
  
 }

我自己写的第一段,我输入了很多数去试,但是都对的,题目判部分错误,下面那个是正确的,是那种情况我没考虑到吗?

题目有没有说一定是三位数,或者100不能反转成001之类的特殊条件?

参考如下:
第一段代码:

使用循环读入数字,然后每次取模10并输出余数,再除以10,重复该操作,直到n的值不再大于0。
第二段代码:

使用循环读入数字,然后进行取模和除法操作,重新组合三位数并输出,每次输出后换行。

区别:

第一段代码每次循环读入一个数字并进行反转,并不考虑位数的限制,如果是一个两位数,会将最后一位数输出两遍;
第二段代码保证输出为三位数,每次输出都换行,如果输入的数字小于100,则在前面补0输出。