C语言经典例67-数组最大值与最小值与数组元素交换
生活随笔
收集整理的这篇文章主要介绍了
C语言经典例67-数组最大值与最小值与数组元素交换
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
目录
- 1 题目
- 2 分析
- 3 实现
- 4 运行结果
1 题目
输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
2 分析
本题的关键是找出数组的最大值与最小值的位置,找出位置后与数组相应的位置交换即可
3 实现
#include <stdio.h> #define N 10 // 假定数组大小为10int main() {int arr[N] = {4, 3, 1, 7, 8, 6, 0, 2, 9, 5};// 输出数组元素printf("交换前数组元素的排列为:");for (int i = 0; i < N; i++) {printf("%d ", arr[i]);}int maxIndex = 0; // 保存最大的数的数组下标,初始为0int minIndex = 0; // 保存最小的数的数组下标,初始为0for (int i = 1; i < N; i++) {if (arr[maxIndex] < arr[i]) {maxIndex = i; // 若i位置的值比最大值还大,就令i为最大值位置}if (arr[minIndex] > arr[i]) {minIndex = i; // 若i位置的值比最小值还小,就令i为最小值位置}}// 最大的与第一个元素交换int t = arr[0];arr[0] = arr[maxIndex];arr[maxIndex] = t;// 最小的与第后一个元素交换t = arr[N - 1];arr[N - 1] = arr[minIndex];arr[minIndex] = t;// 输出数组元素printf("\n交换后数组元素的排列为:");for (int i = 0; i < N; i++) {printf("%d ", arr[i]);} }4 运行结果
交换前数组元素的排列为:4 3 1 7 8 6 0 2 9 5 交换后数组元素的排列为:9 3 1 7 8 6 0 2 9 0总结
以上是生活随笔为你收集整理的C语言经典例67-数组最大值与最小值与数组元素交换的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: C语言经典例66-输入3个数a,b,c,
- 下一篇: C语言经典例68-数组元素循环偏移