题目:本题要求定义一个函数计算一个整数的逆序数。
样例输入:
-12340
样例输出:
-4321
相信有好多人用数位提取来写,我的方法是字符串。
首先给出代码:
#include "stdio.h"
#include "string.h"
main()
{
char a[1000];
gets(a);
int n=strlen(a),i,j;
if(a[0]=='-') printf("-");
for(j=n-1;j>=0;j--)
if(a[j]!='0') break;
for(i=j;i>=0;i--)
{
if(a[i]=='-') break;
printf("%c",a[i]);
}
}
首先,测试特殊情况:
-12340
-152000000
8653000000
首先我们定义字符串数组,用gets函数输入。
其次,判断a[0]是否为负号,若为负号,则输出之。然后测试末尾有好几个零的情况,用循环来消除末尾的多个零,保存j值。
然后将i=j,逆序输出之。如果遇到了负号,则停止循环(小出口)因为逆序输出的话,负号一定是最后一位。如果没有负号,则正常输出a[0],然后结束循环。
这样特殊情况的输出就显得合理了:
-4321
-251
3568
你学会了吗?其实,无论是提取数位还是字符串,适合自己的才是最好的。