输入整数n(n<=20),和2个整数x,y,随机产生n个x-y之间的正整数并保存到数组中。将数组中这n个数中的第0个与第n-1个,第2个与倒数第n-2个元素交换。显示交换前与交换后的数组。(要求判断n为小于等于20的正整数)

问题描述:

图片说明

问题解决的话,请点下采纳

#include <stdlib.h>
#include <stdio.h>
#include <time.h> 

int main()
{
    int n, x, y;
    while (1)
    {
        printf("请输入<=20的正整数:");
        scanf("%d", &n);
        if (n > 0 && n <= 20) break;
    }
    printf("请输入x y:");
    scanf("%d%d", &x, &y);
    int arr[21];
    srand((unsigned)time(NULL));
    for (int i = 0; i < n; i++)
    {
        arr[i] = rand() % (y - x) + x;
    }
    for (int i = 0; i < n; i++)
        printf("%d\t", arr[i]);
    printf("\n");
    if (n >= 3)
    {
        for (int i = 0; i < 2; i++)
        {
            int t = arr[i];
            arr[i] = arr[n - i - 1];
            arr[n - i - 1] = t;
        }
    }
    for (int i = 0; i < n; i++)
        printf("%d\t", arr[i]);
    printf("\n");
    return 0;
}