定义一个数组:int[5],从键盘输入五个数,运用指针,将这五个数倒置

如题所述

/*  HELLO.C -- Hello, world */

#include "stdio.h"
#include "conio.h"

main()
{
    int a[5] = {0};
    int i = 0;
    for (; i < 5; i++) {
        scanf("%d", &a[i]);
    }
    printf("%d %d %d %d %d", a[0], a[1], a[2], a[3], a[4]);
    getchar();
    getchar();
}

这个是获取那5个数的方法,具体如何倒叙输出,比较简单,我就不写了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-12
五个数" 倒置", 是把输入数的次序 倒序 输出,还是把每个数 里 的 数字 倒置?

下面程序完成 每个数 里 的 数字 倒置, 并且 输入数的次序 倒序 输出。
例如:
输入 9 876 54 321 6842
输出 2486 123 45 678 9

#include <stdio.h>
main()
{
int x[5];
int *p=x,t;
int i,j;
char s[20],L;
printf("please input 5 data:\n");
for (i=0;i<5;i++) scanf("%d",&x[i]);
for (i=0;i<5;i++){
printf("%d ",x[i]);
sprintf(s,"%d",x[i]);
L = strlen(s);
for (j=0;j<L/2;j++){
t=s[j];s[j]=s[L-1-j];s[L-1-j]=t;
}
s[L]='\0';
sscanf(s,"%d",&x[i]);
// printf("%d \n",x[i]);
}
t=*p; *p = *(p+4); *(p+4)=t;
t=*(p+1); *(p+1) = *(p+3); *(p+3)=t;
for (i=0;i<5;i++) printf("%d ",x[i]);
return 0;
}本回答被网友采纳
第2个回答  2014-06-12
#include<stdio.h>
void main()
{ int a[5],i,*p,*q,k;
for ( i=0,p=a;i<5;i++,p++ ) scanf("%d",p);
for ( i=0,p=a,q=p+4;i<5/2;i++,p++,q-- ) { k=(*p);(*p)=(*q);(*q)=k; }
for ( i=0,p=a;i<5;i++,p++ ) printf("%d ",*p);
}