#include<stdio.h>
int main() {
int number1,number2,a,b,c,count;
scanf("%d",&number1);
do {
number2=number1/10;
count++;
} while(number2!=0);
switch(count) {
case 1:
printf("%d",number1);
break;
case 2:
a=number1/100;
b=number1%100/10;
printf("%d%d",b,a);
break;
case 3:
a=number1/100;
b=number1%100/10;
c=number1%10;
printf("%d%d%d",c,b,a);
break;}
return 0;}
不考虑负数
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n > 0){
printf("%d",n % 10);
n /= 10;
}
return 0;
}
简便方法有的是,比如用循环,字符串形式输入,不过你这个挨着判断位数就离谱
int func(int n)
{
int t = 0;
while (n)
{
t = t * 10 + n % 10;
n /= 10;
}
return t;
}
#include <stdio.h>
int reversed(int x);
int main()
{
printf("%d",reversed(123456));
return 0;
}
int reversed(int x){
int sum = 0;
while (x/10>0){
sum = sum*10+(x%10);
x /= 10;
}
return sum*10+x;
}
主要是这个问题number1的值在do-while循环里面没有更新,修改如下:
#include<stdio.h>
int main() {
int number1,number2,a,b,c,count;
scanf("%d",&number1);
int temp=number1;
do {
number2=number1/10;
number1=number2;
count++;
} while(number2!=0);
number1=temp;
switch(count) {
case 1:
printf("%d",number1);
break;
case 2:
a=number1/100;
b=number1%100/10;
printf("%d%d",b,a);
break;
case 3:
a=number1/100;
b=number1%100/10;
c=number1%10;
printf("%d%d%d",c,b,a);
break;
}
return 0;
}