思路:就是将键盘输入的数据存入数组后将其倒过来再次存放进数组后输出;
不过针对PTA上的题目,由于其只检测输出点,所以可以从输出下文章;
#include<stdio.h>
int main()
{
int n,a[100];
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);//输入数据存入数组
for(int j=n-1;j>0;j--)//数组元素倒序输出
printf("%d ",a[j]);
printf("%d",a[0]);//由于题目要求最后一个数据后不能有空格,所以最后一项单独输出
return 0;
}
这样虽然能通过测试,但是输入数据逆序存放其实完全没做到。
我们将上述代码优化一下让其能做到数组元素倒序存储并输出。
```#include<stdio.h>
int main()
{
int n,i,t,a[100];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n/2;i++)//若数组有n个元素,那么我们仅需要进行n/2次变换
{
t = a[i];//中间值
a[i]=a[n-1-i];//将数组元素调换,如a[1]=a[3];
a[n-1-i]=t;//将原a[1]的值赋予a[3],最终完成调换
}
for(i=0;i<n-1;i++)//倒叙输出
printf("%d ",a[i]);
printf("%d",a[n-1]);
return 0;
}