一、实验目的:
熟练使用switch语句
熟练使用二维数组
二、实验仪器或设备:
操作系统:Windows11
编程环境:Dev-cpp 5.11
三、算法总体设计
(1)项目一:运输公司对用户计算运费
·用到的算法的目的:计算并输出基于给定每千克基本运费、货物重量、运输距离以及运输距离对应的折扣后的总运费。
·从用户输入中读取每千克基本运费(p)、货物重量(w)和运输距离(s)。
·如果运输距离(s)大于3000,则设置运输段数(c)为12。否则,根据运输距离(s)除以250的结果,向上取整(实际上是整数除法后的结果,因为c是整数类型)来计算运输段数(c)。
·使用switch语句根据运输段数(c)来确定折扣率(d)。折扣率是一个百分比值,表示从总运费中减去的比例。
·总运费计算公式为:f = p * w * s * (1 - d / 100)。利用此公式计算出总运费。
(2)项目二 求出每个学生的平均成绩和每门课程的平均成绩
·用到算法的目的:用户输入每个学生的每门课程成绩。计算每个学生的平均成绩和每门课程的平均成绩。输出每个学生的平均成绩和每门课程的平均成绩。
·使用了二维数组来存储成绩,便于按学生和课程进行索引。
四、实验步骤(包括主要步骤、命令分析等)
项目一 :运输公司对用户计算运费- 1 #include<stdio.h>
- 2 int main(){
- 3 int c,s;
- 4 float p,w,d,f;
- 5 printf("输入每千克基本运费,货物重,距离:");
- 6 scanf("%f,%f,%d",&p,&w,&s);//用户输入信息(严格按照%f,%f,%d格式)
- 7 if(s>3000){
- 8 c=12;
- 9 }
- 10 else
- 11 {
- 12 c=s/250;
- 13 }
- 14 switch(c){
- 15 case 0:d=0;break;
- 16 case 1:d=2;break;
- 17 case 2:
- 18 case 3:d=5;break;
- 19 case 4:
- 20 case 5:
- 21 case 6:
- 22 case 7:d=8;break;
- 23 case 8:
- 24 case 9:
- 25 case 10:
- 26 case 11:d=10;break;
- 27 case 12:d=15;break;
- 28 }
- 29 f=p*w*s*(1-d/100);//利用题目中所给公式
- 30 printf("总运费=%.2f\n",f);
- 31 }
复制代码 项目二: 求出每个学生的平均成绩和每门课程的平均成绩
[code] 1 #include 2 #define Std 2 3 #define Course 3 4 int main() { 5 int i,j; 6 float score[Std +1][Course+1]; 7 float student_avg[Std]; 8 float course_total[Course] = {0}; 9 for(i=0; i |