|
发表于 2020-12-11 23:05:11
|
显示全部楼层
本楼为最佳答案
本帖最后由 风过无痕1989 于 2020-12-11 23:28 编辑
我晕,你这个题目又是最小值放第1个,我的程序又得改一次
- #include<stdio.h>
- void main()
- {
- int i, j = 0, k = 0, n, max, min, temp;
- scanf("%d", &n);
- int a[n]; // 若编译器不允许变长数组,将 a[n] 改为 a[5]
- for (i = 0;i < n;i++)
- scanf("%d", &a[i]);
- min = a[0];
- //找到最数组中最小的元素,并与第一个元素交换
- for (i = 1; i < n; i++)
- {
- if (min > a[i])
- {
- min = a[i];
- j = i;
- }
- }
- temp = a[0]; // 将最小值与第1个元素交换位置
- a[0] = a[j];
- a[j] = temp;
- max = a[n - 1]; // 在最小值的位置确定后,设最后一个元素为最大值
- //找到最数组中最大的元素,并与最后一个元素交换
- for (i = 0; i < n - 1; i++)
- {
- if (max < a[i])
- {
- max = a[i];
- k = i;
- }
- }
- temp = a[n - 1]; // 将最大值与最后1个元素交换位置
- a[n - 1] = a[k];
- a[k] = temp;
- for (i = 0;i < n;i++) // 输出数组
- printf("%d ", a[i]);
- printf("\n");
- }
复制代码 |
|