#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int score[100] = { 0 }; int count[100] = {0}; int i, STUDENTS; STUDENTS = 40; srand(unsigned(time(NULL))); for (i = 0; i < STUDENTS; i++) { score[i] = rand() % 10 + 1;/*评分为1~10*/ /*printf("%d\t", score[i]);*/ count[score[i]] ++; } printf("Grade\tCount\tHistogram\n"); int h, k; for (k = 1; k <= 10;k++)/*k相当于等级*/ { printf("%d\t%d\t", k, count[k]); for (h = 1; h <=count[k]; h++) { printf("%c",'*'); } printf("\n"); } return 0; }
时间: 2024-04-04 16:33:19 浏览: 56
C标准库函数集
5星 · 资源好评率100%
这是一个C语言程序,主要实现的功能是随机生成40个学生的成绩,然后根据成绩生成一个直方图。程序的具体实现过程如下:
1. 定义了三个数组:score数组用于存储学生的成绩,count数组用于存储每个成绩等级的人数,i表示循环变量。其中,count数组的下标表示成绩等级,数组元素表示该等级的人数。
2. 通过srand函数生成随机数种子,以保证每次运行程序生成的随机数不同。
3. 使用for循环生成40个学生的成绩,并将每个成绩存储在score数组中。同时使用count数组统计每个成绩等级的人数。
4. 通过for循环遍历count数组,根据每个等级的人数生成直方图,用字符'*'表示。
5. 最后输出成绩等级、人数和直方图。
需要注意的是,程序中使用了rand函数生成随机数,并使用srand函数生成随机数种子。同时,程序中使用了ASCII码中的字符'*',用于生成直方图。
阅读全文