C语言:编写程序,输入一个整数,将它逆序组成一个整数后输出。要求定义并调用函数reverse(number)

编写程序,输入一个整数,将它逆序组成一个整数后输出。要求定义并调用函数reverse(number),它的功能是返回number的逆序数
【输入形式】输入一个整数(可以是负数)
【输出形式】输出逆序数
【样例输入1】123
【样例输出1】321
【样例输入2】-123
【样例输出2】-321
编译错误,我不会改,帮忙修改,谢谢
#include<stdio.h>
double reverse(int number);
int main()
{
int x,y;
scanf("%d",&x);
y=reverse(x);
printf("%d",y);
return 0;}
double reverse(int number){
int sum=0,s;
if(number>=0){
while(number!=0){
s=number%10;
sum=sum+s;
sum=sum*10;
number/10;}
return sum;}
else{
number=-number
while(number!=0){
s=number%10
sum=sum+s;
sum=sum*10;
number/10;}return -sum;}
}

#include<stdio.h>
double reverse(int number);
int main()
{
int x;
double y;
scanf("%d",&x);
y=reverse(x);
printf("%.0lf",y);
return 0;}
double reverse(int number){
int sum=0,s;
if(number>=0){
while(number!=0){
s=number%10;
sum=sum+s;
sum=sum*10;
number/=10;}
return sum;}
else{
number=-number;
while(number!=0){
s=number%10;
sum=sum+s;
sum=sum*10;
number/=10;}
return -sum;
}
}
表达一个数比如m,m自身除以10时,要这样写,m/=10或者m=m/10绝对不能写成m/10;在C中这是非法语句,还有你漏了几个冒号,还有你的算法有问题,多乘了一个10,输入123时输出3210,这个算法问题你一定要仔细独立去寻找自己的函数部分肯定出了问题,还有当你输入是100时你输出的肯定得是1而不是001,这个情况你也没有考虑到
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-11-15
你在这个函数中
double reverse(int number){
int sum=0,s;.....
}
将sum定义为int型
而函数的返回值是double型
最后返回sum时,你说这能匹配吗
根据题目要求,建议将函数返回值改为int型
纯手打 请给分,谢谢!!!!本回答被网友采纳
第2个回答  2020-05-29
在二楼程序基础上把sum+=s放在sum*=s下面换一下位置,执行1234输出4321,就不会有后面的零了