//只要做适当修改,就能生成任意你愿意的方式记录学生成绩与等级。
//第一波博客,以后坚持写博客,积累下来。
方法一:
#include<stdio.h>
#define N 40
void xinhao(int n);
void init (int a[],int n)
{
int i;
srand(time(0));
for(i=0;i<n;i++)
a[i]=rand()%11+10;
}
int main()
{
int i,j;
int a[N];
int b[N]={0};
init(a,N);
printf("Number Count Graph\n");
for(j=10;j<=20;j++)
{
for(i=0;i<=39;i++)
{
if(a[i]==j)
b[j]++;
}
printf("%d\t%d\t",j,b[j]);
xinhao(b[j]);
}
return 0;
}
void xinhao(int n)
{
int i;
for(i=0;i<n;i++)
printf("*");
printf("\n");
}
//第二种方法比较简单。
方法二:#include <stdio.h>
#include <stdlib.h>
#include <time.h>//使用当前时钟作种子
int main()
{
int score[40];//40人成绩
int count[11]={0};//10个等级
int i,j,a;
printf("Grade Count Histogram\n");
srand((int) time(NULL));//产生随机数种子
for(i=0;i<=39;i++)
{
a=rand()%10+1;//产生1到10的随机数
score[i]=a;//依次存入score数组中。
}
for(i=1;i<=10;i++)
{
for(j=0;j<=39;j++)
{
if(score[j]==i)//对应每个等级记数
count[i]++;
}
printf("%d\t%d\t",i,count[i]);
for(a=1;a<=count[i];a++)//根据上一个循环的结果依次打印星号
printf("*");
printf("\n");
}
return 0;
}