在进行三位数反转
的时候这两段代码有啥区别?
第一段
#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输出。