题目描述
对于给定的一个整数n,总是可以把它逆序过来变成另外一个整数,请编程实现。
输入
第一个是正整数M,表示有M个测试数据,每行为一个整数n。
输出
输出逆序后的整数,不能有多余的前导0。
样例输入 复制
2 120 -123
样例输出 复制
21 -321
#include <stdio.h>
int main()
{
int m;
scanf("%d", &m);
for(int i = 0; i < m; i++)
{
int n, ans = 0;
scanf("%d", &n);
if(n<0)
{
n=-n;
printf("-");
}
while(n > 0)
{
ans = ans * 10 + n % 10;
n /= 10;
}
printf("%d\n", ans);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m, n;
scanf("%d", &m);
while(m--)
{
scanf("%d", &n);
if(n < 0)
{
printf("-");
n = abs(n);
}
int tmp = n;
int reversed_num = 0;
while(tmp > 0)
{
int digit = tmp % 10;
reversed_num = reversed_num * 10 + digit;
tmp /= 10;
}
printf("%d\n", reversed_num);
}
return 0;
}
思考下面程序的问题 并修改完善
#include<stdio.h>
#include<string.h>
#include<math.h>
//注意此题不能有多余的前导0
int main()
{
int m;
while(scanf("%d",&m)!=EOF)
{
int a[10000];
scanf("%d",a);
int len=0;
len=strlen(a);
while(a&&a[len-1]==0) len--;
if(a<0)
{
a=-a;
printf("-");
}
for(int i=len-1;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}
}