C语言学到了数组,作业有一个餐厅问题,试着做了一下,用的二维数组,有不对的地方欢迎指出
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 41//宏定义控制打分人数
int main(void)
{
srand(time(NULL));//用time(NULL)返回值作随机数种子
int x, i, j, k;
//定义一个二维数组将第一列存放打分等级,第二列记录打分次数
int Grade[10][2] = {{1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}};
/* 模拟N个人打分 */
for (i = 1; i < N; i++)
{
x = rand() % 10 + 1;//用随机数函数模仿用户打分
Grade[x - 1][1]++;
/*
这是一开始我尝试用手动输入用户打分写的代码,
scanf("%d",&x);
switch(x)
{
case 1: Grade[0][1]++;
break;
case 2: Grade[1][1]++;
break;
case 3: Grade[2][1]++;
break;
case 4: Grade[3][1]++;
break;
case 5: Grade[4][1]++;
break;
case 6: Grade[5][1]++;
break;
case 7: Grade[6][1]++;
break;
case 8: Grade[7][1]++;
break;
case 9: Grade[8][1]++;
break;
case 10:Grade[9][1]++;
break;
}
*/
}
printf("Grade\tCount\tHistogram\n");
for (j = 0; j < 10; j++)//j控制打印二维数组第一列
{
for (i = 0; i < 2; i++)//i控制打印二维数组第二列
{
printf("%d\t", Grade[j][i]);
}
/* 打印*号 */
if (Grade[j][1] != 0)
{
for (k = 1; k <= Grade[j][1]; k++)
{
printf("*");
}
}
printf("\n");
}
return 0;
}