C语言问题,输入一个不大于5位的数,交换其各个位上数的位置。例如:输入12345,要求输出54321

想了很久做不好,求哪位指导指导,谢谢!

用一个数组依次保存每一位的值,然后输出就成了。
如a=12345,tmp = a
循环处理,直到tmp == 0;
tmp%10 = 5,将5保存
tmp = a/10;

将保存的内容输出就行了……
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-29
#include <stdio.h>
void main(){
int i ,n=5,a[5]={1,2,3,4,5};
int temp,*p1,*p2;

printf("the orginal array:\n");
for(p1=a;p1<a+n;p1++)
printf("%3d",*p1)
printf("\n");

p1=&a[0];
p2=&a[5];
for(i=0;i<n/2;i++)
{
temp=*p1;
*p1=*p2;
*p2=*p1;
*p2=temp;
p1++;
p2--;
}

printf("the array has been inverted:\n");
for(p1=a;p1<a+n;p1++)
printf("%3d",*p1);
printf("\n");

}
第2个回答  2016-01-18