第1关:用指针实现数组元素逆置
100
- 任务要求
- 参考答案
- 评论22
任务描述
本关任务:使用指针编写一个程序,输入10个整数存入数组,将数组元素逆置后输出。
相关知识
数组逆置的算法思想:第一个数组元素和倒数第一个数组元素交换,第二个和倒数第二个交换,依次进行下去,直到交换的两个数组元素相遇。
提示:
int a[10],*i,*j,temp;
i = &a[0]; // 指针变量i指向数组元素a[0]
j = &a[9]; // 指针变量i指向数组元素a[9]
temp = *i; *i = *j; *j=temp; // 交换数组元素a[0]和a[9]
i++; // 指针变量i指向数组元素a[1]
j--; // 指针变量j指向数组元素a[8]
编程要求
根据提示,在右侧编辑器 Begin-End 区间补充代码,将数组元素逆置,输出时,每个数字之间空一格。
测试说明
平台会对你编写的代码进行测试:
测试输入:10 5 1 2 3 4 5 6 7 8
预期输出:8 7 6 5 4 3 2 1 5 10
开始你的任务吧,祝你成功!
#include <stdio.h>
#define N 10
int main()
{
/********** Begin **********/
int *i,*j,temp,a[10],k;
i=&a[0];
j=&a[9];
for(int k=0;k<10;k++)
scanf("%d",&a[k]);//输入10个整数
for(i=&a[0],j=&a[9],k=0;k<5;k++,i++,j--)
{
temp=*i;
*i=*j;
*j=temp;
}
for(k=0;k<10;k++)
printf("%d ",a[k]);//输出逆序处理后的数
/********** End **********/
return 0;
}