十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
思路是先转成字符串再操作 返回值为计算出的逆序数 int f(int num) { char an[15]; int i, len, t, neg = 0; if(num 0) { num = -num; neg = 1; } sprintf(an, "%d", num); len = strlen(an); for(i=0; ilen/2; i++) { t = an[i]; an[i] = an[len - 1 -i]; an[len - 1 -i] = t; } num = atoi(an); return (neg?-num:num); } 刚才没看到你还没学到字符串,再给你个简单点的 int f(int num) { int a=0,b; while (num != 0) { b=num%10; a=a*10+b; num=num/10; } return a; }
创新互联公司科技有限公司专业互联网基础服务商,为您提供成都IDC机房托管,高防服务器,成都IDC机房托管,成都主机托管等互联网服务。
int reverse(int n)
{
int r=0;
while(n!=0)
{
r*=10;
r+=(n%10);
n/=10;
}
return r;
}
#include stdio.h
#include string.h
#include stdlib.h
void main()
{
char array[10];
int k;
scanf("%d", k);
itoa(k, array, 10);
k = strlen(array);
while(k=0)
{
printf("%c", array[k-1]);
k--;
}
//如果想逆序输出数是整型数,可以用atoi()函数转换回来
}
因为这个数字很长,而且开头允许以零开始,所以有必要使用字符串来保存这个数字。然后用两个变量分别指向它的第一个数字和最后一个数字,在使用一个循环判断这两个数字是否相同,如果相同,就把前面的标加一,并且把后面的下标减去一,直到前面的下标大于后面的下标,或者两个下标所指的数字不相同。只要退出的时候两个下标的数字不相同,原来的数字就不是幸运数字,否则他就是一个幸运数字。
呃……输入m,abc不能这么得来!a=m/100,b=(m/10)%10,c=m%10,而且scanf不能 在m下面,不然m怎么读入?这里直接引用了ascll码了……