7-3 倒置数组元素
分数 12
作者 崔孝凤
单位 山东理工大学
键盘输入n(n<=20)个数存入一维数组中,编程实现将其中的值前后倒置后重新存入该数组中并输出。
输入格式:
第一行输入数据个数n,第二行输入n个数据,数据之间用空格隔开。
输出格式:
输出数据之间用逗号,分隔,最后换行。
输入样例:
10
1 2 3 4 5 6 7 8 9 100
输出样例:
100,9,8,7,6,5,4,3,2,1
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
参考一下:
#include <stdio.h>
#define MAX_N 20
int main()
{
int n, i, temp;
int a[MAX_N];
// 读入数据
scanf("%d", &n);
for (i = 0; i < n; ++i) {
scanf("%d", &a[i]);
}
// 将数据前后倒置
for (i = 0; i < n / 2; ++i) {
temp = a[i];
a[i] = a[n - 1 - i];
a[n - 1 - i] = temp;
}
// 输出结果
for (i = 0; i < n; ++i) {
printf("%d", a[i]);
if (i < n - 1) {
printf(",");
}
}
printf("\n");
return 0;
}
供参考:
#include <stdio.h>
#define N 21
int main()
{
int n, a[N], i, t;
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
for (i = 0; i < n / 2; i++) //数组逆置
{
t = a[i]; a[i] = a[n - i - 1]; a[n - i - 1] = t;
}
for (i = 0; i < n; i++)
printf(i ? ",%d" : "%d", a[i]);
return 0;
}
思路:
示例代码:(假设数组名为arr)
#include <stdio.h>
int main()
{
int n, i, temp;
scanf("%d", &n);
int arr[n];
for(i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int *p1 = arr, *p2 = arr + n - 1;
while(p1 < p2)
{
temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
for(i = 0; i < n-1; i++)
{
printf("%d,", arr[i]);
}
printf("%d\n", arr[n-1]);
return 0;
}