题目:自动输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。   

public class Array {

    public static void main(String[] args) {
        //输入数组,最大与第一个元素交换,最小与最后一个元素交换,输出数组
        int[] arr=new int[10];
        for(int i=0;i<arr.length;i++) {
            arr[i]=(int)(Math.random()*100);
            System.out.print(arr[i]+" ");
        }
        //最大
        int maxnum=0;
        int max=arr[0];
        for(int i=1;i<arr.length;i++) {
            if(arr[i]>max) {
                maxnum=i;
                max=arr[i];
            }
        }
        System.out.println();
        System.out.println("最大值为:"+max);
        int t1;
        t1=arr[0];
        arr[0]=max;
        arr[maxnum]=t1;
        //最小
        int minnum=0;
        int min=arr[0];
        for(int i=1;i<arr.length;i++) {
            if(arr[i]<min) {
                minnum=i;
                min=arr[i];
            }
        }
        System.out.println("最小值为:"+min);
        int t2;
        t2=arr[arr.length-1];
        arr[arr.length-1]=min;
        arr[minnum]=t2;
        
        for(int i=0;i<arr.length;i++) {
            System.out.print(arr[i]+" ");
        } 

    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是用C语言实现的代码: ```c #include <stdio.h> int main() { int n, i, max = 0, min = 0, temp; int arr[100]; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &arr[i]); if (arr[i] > arr[max]) { max = i; } if (arr[i] < arr[min]) { min = i; } } temp = arr[max]; arr[max] = arr[0]; arr[0] = temp; temp = arr[min]; arr[min] = arr[n-1]; arr[n-1] = temp; for (i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; } ``` 解释一下代码: 1. 首先定义变量n表示数组长度,i表示循环计数器,max和min分别表示最大值和最小值的下标,temp表示交换用的临时变量。 2. 定义一个数组arr,用于存储输入的元素。 3. 通过scanf函数输入n和数组元素,同时用循环找到最大值和最小值的下标。 4. 交换最大值和第一个元素交换最小值和最后个元素。 5. 循环输出数组元素。 输入样例:5 12 8 34 1 54 输出样例:54 8 34 12 1 ### 回答2: 下面是使用C语言实现给定功能的代码段: ```c #include <stdio.h> void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int n, i; printf("请输入数组长度:"); scanf("%d", &n); int arr[n]; printf("请输入数组元素:"); for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } // 寻找最大值和最小值的索引 int maxIndex = 0, minIndex = 0; for (i = 1; i < n; i++) { if (arr[i] > arr[maxIndex]) { maxIndex = i; } if (arr[i] < arr[minIndex]) { minIndex = i; } } // 将最大的元素与第一个元素交换 swap(&arr[maxIndex], &arr[0]); // 将最小的元素与最后个元素交换 swap(&arr[minIndex], &arr[n-1]); // 输出数组 printf("输出数组:"); for (i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); return 0; } ``` 在上面的代码中,我们首先通过程序向用户询问数组的长度。然后我们根据用户给定的长度来定义一个整型数组arr。然后我们通过程序提示用户输入数组的元素,待用户输入完毕后,我们便可以通过遍历整个数组来寻找最大值和最小值的索引。接着我们使用封装好的swap函数将最大的元素与第一个元素交换,将最小的元素与最后个元素交换最后我们输出交换后的数组。 ### 回答3: 题目要求使用C语言实现一个功能:先输入一个数组长度(不超过100),然后输入数组元素,将最大的元素与第一个元素交换位置,再将最小的元素与最后个元素交换位置,最后输出数组。 下面是一种实现方式: ```c #include <stdio.h> void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int n; // 数组长度 int arr[100]; // 定义一个大小为100的数组 int i, max_index, min_index; // 输入数组长度和元素 printf("请输入数组长度(不超过100):"); scanf("%d", &n); printf("请输入数组元素:"); for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } // 找到最大值和最小值的下标 max_index = 0; min_index = n - 1; for (i = 1; i < n; i++) { if (arr[i] > arr[max_index]) { max_index = i; } if (arr[i] < arr[min_index]) { min_index = i; } } // 将最大值与第一个元素交换 swap(&arr[0], &arr[max_index]); // 如果最小值是第一个元素,则需要将最小值下标更新为交换后的下标 if (min_index == 0) { min_index = max_index; } // 将最小值与最后个元素交换 swap(&arr[min_index], &arr[n - 1]); // 输出数组 printf("交换后的数组为:"); for (i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; } ``` 运行程序时,先输入数组的长度(不超过100),然后输入对应长度的数组元素。程序会根据输入进行交换操作,最后输出交换后的数组。 示例输入: 5 12 8 34 1 54 示例输出: 54 8 34 12 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值