程序设计与问题求解

来源:百度知道 编辑:UC知道 时间:2024/05/15 18:07:55
实验五 数组的使用
一、实验目的
掌握数组的定义、赋值和输入输出方法
学习使用数组实现相关算法
二、实验内容
1.检验并打印魔方矩阵
在下面的5×5阶魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中,然后检验其是否为魔方矩阵,并将其按如下格式显示到屏幕上。

17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
2.餐饮服务质量调查打分
在商业和科学研究中,人们经常需要对数据进行分析并将结果以直方图的形式显示出来。例如,一个公司的主管可能需要了解一年来公司的营业状况,比较一下各月份的销售收入状况。如果仅给出一大堆数据,这显然太不直观了,如果能将这些数据以条形图(直方图)的形式表示,将会大大增加这些数据的直观性,也便于数据的分析与对比。下面以顾客对餐饮服务打分为例,练习这方面的程序编写方法。假设有40个学生被邀请来给自助餐厅的食品和服务质量打分,分数划分为1~10这10个等级(1表示最低分,10表示最高分),试统计调查结果,并用*打印出如下形式的统计结果直方图。
Grade Count Histogram
1 5 *****
2 10 **********
3 7 *******
...
提示:
– 定义数组score存放打的分数
– 定义数组count为计数器(count[0]不用)
– 计算统计结果:设置一个循环,依次检查数组元素值score[i],是1则将数组元素count[1]加1,是2则将数组元素count[2]加1,依此类推
for (i=0; i<STUDENTS; i++)
{
count[score[i]] ++;
}
– 打印统计结果,设置一个循环,按count数组元素的值,打印相应个数的符号’*’
提示:输入40个数据太多

2.餐饮服务质量调查打分
用switch语句:
#include <stdio.h>
#define STUDENTS 40
#define GRADE_SIZE 11
main(){
int i, j, grade;
int score[STUDENTS], count[GRADE_SIZE] = {0};
printf("Please enter the response score of forty students:\n");
for (i=0; i<STUDENTS; i++)
{ scanf("%d", &score[i]); }
for (i=0; i<STUDENTS; i++)
{
switch (score[i])
{
case 1:
count[1]++;
break;
case 2:
count[2]++;
break;
case 3:
count[3]++;
break;
case 4:
count[4]++;
break;
case 5:
count[5]++;
break;
case 6:
count[6]++;
break;
case 7:
count[7]++;
break;
case 8:
count[8]++;
break;
case 9:
count[9]++;
break;
case 10: