用·c语言·定义一维整型数组,输入5个数,从大到小排序,输出次最大值
时间: 2024-12-14 16:29:48 浏览: 9
字符串的逐个字符输入/输出-第5章 数组
在 C 语言中,我们可以使用数组、循环和条件语句来实现这个功能。首先,我们需要定义一个一维整型数组,然后输入 5 个数字并存储,接着对数组进行冒泡排序,找到次大的值并输出。
以下是步骤和相应的代码:
1. 定义数组:
```c
#include <stdio.h>
int main() {
int arr[5]; // 一维整型数组,大小为5
```
2. 输入 5 个数字:
```c
for (int i = 0; i < 5; i++) {
printf("请输入第 %d 个数:", i + 1);
scanf("%d", &arr[i]);
}
```
3. 冒泡排序(从大到小):
```c
for (int i = 0; i < 4; i++) { // 由于最后一个元素已经是最大的,所以内层循环遍历前4个元素
for (int j = 0; j < 4 - i; j++) {
if (arr[j] < arr[j + 1]) { // 如果当前元素小于下一个元素,交换它们
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
```
4. 输出次大值:
```c
printf("次大值是:%d\n", arr[4]); // 因为数组是从大到小排列,所以最大的值是第一个元素,次大值就是第二个元素
```
完整的程序如下:
```c
#include <stdio.h>
int main() {
int arr[5]; // 一维整型数组,大小为5
// 输入 5 个数字
for (int i = 0; i < 5; i++) {
printf("请输入第 %d 个数:", i + 1);
scanf("%d", &arr[i]);
}
// 冒泡排序
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4 - i; j++) {
if (arr[j] < arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 输出次大值
printf("次大值是:%d\n", arr[4]);
return 0;
}
```
阅读全文