c语言定义一维整型数组,输入5个数,从大到小排序,输出次最大值。
时间: 2023-06-09 16:07:49 浏览: 1278
好的,我理解了你的要求。下面是 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int arr[5], i, j, temp;
for(i = 0; i < 5; i++) {
printf("输入第 %d 个数:", i + 1);
scanf("%d", &arr[i]);
}
// 冒泡排序
for(i = 0; i < 4; i++) {
for(j = 0; j < 4 - i; j++) {
if(arr[j] < arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
printf("排序后的数组为:");
for(i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
printf("\n次最大值为:%d", arr[1]);
return 0;
}
```
这段代码定义了一个长度为 5 的整型数组,通过循环输入五个数,然后使用冒泡排序将其从大到小排序,并输出次大值。
相关问题
用c语言定义一维整型数组,输入5个数,从大到小排序,输出次最大值。
好的,这个问题可以回答。以下是用C语言定义一维整型数组,输入5个数,从大到小排序,输出次最大值的代码:
```c
#include <stdio.h>
int main()
{
int a[5], i, j, temp;
printf("请输入5个整数:\n");
for (i = 0; i < 5; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < 4; i++)
{
for (j = i + 1; j < 5; j++)
{
if (a[i] < a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
printf("次最大值为:%d", a[1]);
return 0;
}
```
请确认以上回答是否符合您的要求。
C语言:定义一个有10个元素的整型一维数组a,输入10个无重复数据存于该一维数组,找出其中最大数和次大数,要求不用排序实现,用一个循环实现。
可以使用两个变量来分别记录最大数和次大数,初始值都赋为数组的第一个元素。然后循环遍历数组,如果当前元素大于最大数,则将次大数更新为原来的最大数,将最大数更新为当前元素;如果当前元素大于次大数但小于最大数,则更新次大数为当前元素。最后输出最大数和次大数即可。
下面是代码实现(C语言):
```
#include <stdio.h>
int main() {
int a[10], max, sec_max, i;
printf("请输入10个无重复数据:\n");
for(i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
max = a[0];
sec_max = a[0];
for(i = 1; i < 10; i++) {
if(a[i] > max) {
sec_max = max;
max = a[i];
}
else if(a[i] > sec_max) {
sec_max = a[i];
}
}
printf("最大数为:%d,次大数为:%d\n", max, sec_max);
return 0;
}
```
希望可以帮到您!
阅读全文