例题:
题目描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(如:输入-380,输出-83)。
输入描述
输入共1行,一个整数N。
输出描述
输出共1行,一个整数,表示反转后的新数。
样例输入
123
样例输出
321
AC代码:
方法一:
优点:此方法不用考虑前置0的问题
#include <stdio.h>
int main()
{
int n,s=0;
scanf("%d",&n);
while(n!=0)
{
s=s*10+n%10;
n=n/10;
}
printf("%d\n",s);
}
方法二:
优点:此方法逻辑过程分析好理解
#include <stdio.h>
#include <string.h>
int main()
{
char s[100];
gets(s);
int n,f=0,t;
n=strlen(s)-1; //统计字符串有多长,注意下标是从0开始的,值要减1
while(s[n]=='0') //计算第一个非’0’位置
{
n--;
t=n;
}
if(s[0]=='-') //符号特判
{
f=1;
printf("-");
}
for(int i=n;i>=1;i--) //从非’0’位置倒序输出
{
printf("%c",s[i]);
}
if(f==0) //单独输出
{
printf("%c",s[0]);
}
return 0;
}