输入10个整数存入一维数组,再按逆序重新存放后输出(用指针方式实现)。

2024-11-28 17:25:35
推荐回答(4个)
回答1:

#include

int main()
{
int a[10], i, temp, *p, *q;
for(i=0; i<10; i++)
scanf("%d", &a[i]);
p = a, q = a+9;
while(p temp = *p;
*p++ = *q;
*q-- = temp;
}
for(i=0; i<10; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}

回答2:

小试了一下,按照你的要求用指针做的(调用逆序存放函数):
#include
#include

void swap(int *p,int n);

int main(void)

{
int a[10],i,*p=a;
printf("Pls insert 10 numbers:\n");
for(i=0;i<10;i++,p++)
scanf("%d",p);
p=a;
swap(p,10);
for(p=a;p printf("%3d",*p);

system("pause");
}

void swap(int *p,int n)
{
int *i,*t,*k=(n-1+p);
for(i=p;i<(n/2+p);i++)
{
t=*i;
*i=*k;
*k=t;
k--;
}
}

回答3:

# include "stdio.h"
void main ()
{
int a[10],*p=a;
for(int i=0;i<10;i++)
scanf("%d",p);

for( p=a+10;p>10;i--)
printf("%d ",*p);
prinf("\n");

}

回答4:

#include
void main()
{
int a[10],*b;
int j=9;
for(int i=0;i<10;i++)
scanf("%d",&a[i]);
b=a;
for( i=0;i<5;i++)
{
int c;
c=*b;
*b=a[j];
a[j]=c;
b++;
j--;
}
for( i=0;i<10;i++)
printf("%d",a[i]);

}