用c写一个谁考了第k名
时间: 2023-05-26 22:02:18 浏览: 133
以下是一个简单的C程序,用于找出考了第k名的人:
```
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, k, i, j, temp;
int *scores;
printf("请输入考试人数:");
scanf("%d", &n);
scores = (int*)malloc(n * sizeof(int)); //动态申请n个int大小的内存空间
printf("请输入每个人的分数:\n");
for(i = 0; i < n; i++)
{
scanf("%d", &scores[i]);
}
printf("请输入要查询的排名k:");
scanf("%d", &k);
for(i = 0; i < n - 1; i++) //冒泡排序
{
for(j = 0; j < n - i - 1; j++)
{
if(scores[j] < scores[j + 1])
{
temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
printf("第%d名考试分数为:%d\n", k, scores[k - 1]);
free(scores); //释放动态申请的内存空间
return 0;
}
```
程序功能解析:
1. 用户输入考试人数n和每个人的分数scores;
2. 用户输入要查询的排名k;
3. 用冒泡排序算法将分数从大到小排序;
4. 输出第k名的分数。
注意事项:
1. 这个程序只能用于正整数的排名查询,不能查询排名小于1或大于总人数的情况;
2. 为了避免内存泄漏,需要在程序结束时使用free()函数释放动态申请的内存空间。
相关推荐
![sln](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)