查询取得最高成绩的学生人数,大部分同学的思想是:先遍历一遍全体同学生成绩,比较得出最高成绩的数值,再遍历一次,统计取得最高成绩的人数,但这种方法比较费时。 下面介绍一种思想:由于成绩最低为0,最高为100,所以共有101种可能,我们先定义一个101个元素的数组,初始化为0,然后将每个成绩作为下标,使相应数组元素加一,遍历一遍即可得出各取得成绩的人数,再从后向前遍历数组,第一个不为0的元素下标即为最高成绩。 输入:请输入学生个数:x 请输入各位学生成绩:xx xx xx xx xx 输出:最高成绩为xx,人数为x 示例:请输入学生个数:5 请输入各位学生成绩:98 98 80 81 70 最高成绩为98,人数为2 代码:
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int main (){ int n; int class[101] = { 0 }; PRintf ("请输入学生个数:"); scanf ("%d", &n); printf ("请输入各位学生成绩:"); for (int i = 0; i < n; i++) { int x; scanf ("%d", &x); class[x]++; } int j = 100; while (class[j] == 0) { j--; } printf ("/n最高成绩为%d,人数为%d", j, class[j]); system ("pause"); return 0;}欢迎关注微信公众号:C语言二伟
新闻热点
疑难解答