c语言随机输入10个数放入数组,最大数与第一个元素交换,最小数与最后一个元素交换,例如10,78,-89,90,100,-900,98,78,69,230的代码展示和,算法设计,解题思路,难点解析,项目小结
时间: 2023-11-02 10:17:33 浏览: 85
算法设计:
1. 定义一个长度为10的数组,用于存放输入的10个数;
2. 通过循环,依次输入10个数;
3. 通过循环,找出数组中的最大值和最小值,并记录它们的下标;
4. 将最大值与第一个元素交换,将最小值与最后一个元素交换;
5. 输出交换后的数组。
代码展示:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int arr[10];
int i, max, min, max_index, min_index, temp;
srand((unsigned int)time(NULL)); // 初始化随机数种子
// 循环输入10个随机数
for (i = 0; i < 10; i++) {
arr[i] = rand() % 1000 - 500;
printf("%d ", arr[i]);
}
// 查找最大值和最小值
max = arr[0];
min = arr[0];
max_index = 0;
min_index = 0;
for (i = 1; i < 10; i++) {
if (arr[i] > max) {
max = arr[i];
max_index = i;
}
if (arr[i] < min) {
min = arr[i];
min_index = i;
}
}
// 交换最大值和第一个元素的位置
temp = arr[0];
arr[0] = max;
arr[max_index] = temp;
// 交换最小值和最后一个元素的位置
temp = arr[9];
arr[9] = min;
arr[min_index] = temp;
// 输出交换后的数组
printf("\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
解题思路:
1. 首先通过循环输入10个随机数,并将它们放入数组中;
2. 通过一次循环,找出数组中的最大值和最小值,并记录它们的下标;
3. 将最大值与第一个元素交换,将最小值与最后一个元素交换;
4. 输出交换后的数组。
难点解析:
1. 数组中的最大值和最小值的查找;
2. 元素的交换。
项目小结:
本项目练习了数组的使用,以及常见的算法思想——查找和交换。通过这个小项目,我们可以更好地理解数组的操作,并掌握常见算法的实现方法。同时,还可以加深对C语言的理解和应用。
阅读全文