思路是先转成字符串再操作 返回值为计算出的逆序数 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; }
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计、网站制作、海沧网络推广、微信小程序、海沧网络营销、海沧企业策划、海沧品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供海沧建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
#include stdio.h
int main()
{
int n,m=0;
scanf("%d",n);
while(n)
{m=m*10+n%10;n/=10;}
printf("%d",m);
return 0;
}
运行示例:
请自行对照。
因为这个数字很长,而且开头允许以零开始,所以有必要使用字符串来保存这个数字。然后用两个变量分别指向它的第一个数字和最后一个数字,在使用一个循环判断这两个数字是否相同,如果相同,就把前面的标加一,并且把后面的下标减去一,直到前面的下标大于后面的下标,或者两个下标所指的数字不相同。只要退出的时候两个下标的数字不相同,原来的数字就不是幸运数字,否则他就是一个幸运数字。
#includestdio.h
#includemath.h
int reserve(int number){
int i=1,sum=0,n;
while(number/(int)pow(10,i)0){// 这里用(int)pow(10,i)取整数,因为pow函数返回的是浮点型值
++i;}
while(i!=0){
n=number%10;
number=number/10;
sum=sum+n*pow(10,i-1);
i=i-1;
}
return sum;
}
int main(void){
int num,re;
printf("请输入一个整数:");
scanf("%d",num);
re=reserve(num);
printf("逆序数:%d\n",re);
return 0;
}
参考修改过的代码哈,欢迎交流,满意请采纳。
#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()函数转换回来
}
int reverse(int n)
{
int r=0;
while(n!=0)
{
r*=10;
r+=(n%10);
n/=10;
}
return r;
}
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款