#includestdio.h
从事香港机房服务器托管,服务器租用,云主机,网站空间,域名与空间,CDN,网络代维等服务。
int reverse(int n)
{
int i,sum=0;
while(n)
{i=n%10;br n/=10;br sum=10*sum+i;br }
return sum;}
void main()
{
int n;
printf("请输入一个整数:");
scanf("%d",n);
printf("%d的逆序数为:%d\n",n,reverse(n));
}不懂得可以hi我
#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;
}
运行示例:
请自行对照。
思路是先转成字符串再操作 返回值为计算出的逆序数 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; }
代码里有一些问题,看注释。
#includestdio.h
int nixu (int n,int a[]);
void main()
{
int a[10],i;
printf("please input 10 numbers\n");
for(i=0; i10; i++)
scanf("%d",a[i]); /*数组10个元素,最大下标只能到9,a[10]越界;另外a[i]才是需要输入的元素,而不是恒定某一个元素*/
nixu (10, a);
for(i=0; i10; i++) /*输出数组同样也要循环*/
printf("%d ",a[i]); /*数组10个元素,最大下标只能到9,a[10]越界*/
}
int nixu (int n, int a[]) /*函数定义参数不能和局部变量重名*/
{
int i,k=(n-1)/2,t; /*运算符/比-优先级高,要加括号*/
for(i=0; i=k; i++)
{ /*逆序过程只要一重循环就可以了*/
t=a[i];
a[i]=a[n-i-1]; /*尾部对应的数组下标要找对*/
a[n-i-1]=t;
}
return 0; /*返回随便一个值就可以,调用的地方不需要函数返回值,不能返回数组首地址*/
}