C语言编程,从键盘上输入n(n<=20)个整数存入一维数组

C语言编程,从键盘上输入n(n<=20)个整数存入一维数组,用指针变量表示数组元素的方式将其逆序存放,然后输然后输出,注意,实现该算法时不允许在定义数组

#include<stdio.h>
void negasort(int *array,int n);//逆序存放函数
int main()
{
int arry[20];
int n;
printf("请输入数组元素个数:");
scanf("%d",&n);
printf("请输入数组元素:");
for(int i=0;i<n;i++)
scanf("%d",arry+i);
negasort(arry,n);//调用逆序存放函数
for(int j=0;j<n;j++)
printf("%d\t",*(arry+j));
}
void negasort(int *arry,int n)
{
int temp;
int m=n/2;
for(int k=0;k<m;k++)
{
temp=*(arry+k);
*(arry+k)=*(arry+n-1-k);
*(arry+n-1-k)=temp;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-22
#include<stdio.h>
main()
{int a[20],i,*p,*q,n,t;
p=a;
scanf("%d",&n);
q=&a[n-1];
for(i=0;i<n/2;i++)
{t=*p;
*p=*q;
*q=t;
p++;
q--;}
for(i=0;i<n;i++)
printf("%d",a[i]);
}
第2个回答  2011-05-12
#include<stdio.h>
main()
{
int a[20];
int *p;
int n,i,temp;

printf("输入数字的个数n\n");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
p=&a[0];
for(i=0;i<(n/2);i++)

{ temp=*p;
a[i]=a[n-1-i];

a[n-1-i]=temp;

p++;

}
for(i=0;i<n;i++)
printf(" %d",a[i]);
}