有10个互不相同的整数:99、200、95、87、98、-12、30、87、75、-25,不用排序,每当输入一个1-10之间的数n,即可输出第n个大的数。比如,输入2,则输出99. 请设计并实现一算法,传入数字n即可输出第n个大的数用。C语言文字描述
时间: 2024-01-31 18:01:43 浏览: 56
C语言程序设计-求一个大于10的n位整数的后n-1位的数,并作为函数值返回;
5星 · 资源好评率100%
可以使用选择排序的思想,在数组中找到第n大的数。首先读入10个数,然后输入n,定义一个变量count记录当前已经找到了多少个大的数,定义一个变量maxIndex记录当前已知的最大值在数组中的下标。接着,循环n次,每次循环将数组中未找到最大值前的数中最大的数移到最后面,并更新maxIndex和count。最后,输出数组中第n大的数即可。具体过程如下所述:
```
#include <stdio.h>
int main()
{
int arr[10] = {99,200,95,87,98,-12,30,87,75,-25};
int n, count, i, j, maxIndex, temp;
printf("请输入要求的第几大的数:");
scanf("%d", &n);
// 循环n次,每次找到最大的数
for(count=1; count<=n; count++)
{
maxIndex = 0;
// 找到未排序的数中的最大值
for(i=1; i<10-count+1; i++)
{
if(arr[i]>arr[maxIndex])
{
maxIndex = i;
}
}
// 将最大值移到数组末尾
temp = arr[10-count];
arr[10-count] = arr[maxIndex];
arr[maxIndex] = temp;
}
printf("数组中第%d大的数为:%d", n, arr[10-n]);
return 0;
}
```
以上是一种简单
阅读全文