倒置数组元素ptac语言

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;
}

以下内容部分参考ChatGPT模型:


思路:

  1. 定义一个数组,输入n个数据;
  2. 定义两个指针p1和p2,分别指向数组的第一个元素和最后一个元素;
  3. 通过循环,依次将p1和p2指向的元素交换;
  4. 最后将数组输出,元素之间用逗号隔开,最后再换行。

示例代码:(假设数组名为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;
}

如果我的建议对您有帮助、请点击采纳、祝您生活愉快