这是最近的某道作业题,分享一下
可能有点堆屎山,目前的试验没有发现bug(如有发现可以跟我反馈下),那么开始吧:
需要的头文件
#include<stdio.h>
成绩评定中,平均成绩有期末成绩占70%,平时成绩占30%,所以我们先输入期末成绩和平时成绩,在这里我选用了总共五门课程(所有科目满分都是100)
*在开始之前,这里放个 again: 后面说是什么时候用
again:
int arr1[5] = { 0 };
int arr2[5] = { 0 };
int i,j;
printf("请依次输入 信号与系统 高等数学 电路分析 概率论 大学英语 五科期末成绩:");
scanf("%d %d %d %d %d", &arr1[0], &arr1[1], &arr1[2], &arr1[3], &arr1[4]);
printf("请依次输入 信号与系统 高等数学 电路分析 概率论 大学英语 五科平时成绩:");
scanf("%d %d %d %d %d", &arr2[0], &arr2[1], &arr2[2], &arr2[3], &arr2[4]);
//这里使用数组是为了后面评定奖学金资格需要
接下来我们计算下平均成绩
float q = (arr1[0] + arr1[1] + arr1[2] + arr1[3] + arr1[4]) * 0.7;
float p = (arr2[0] + arr2[1] + arr2[2] + arr2[3] + arr2[4]) * 0.3;
float x_ = (q + p) / 5;
printf("您五科期末成绩的平均分为:%.2f\n", x_);
下一个目标是成绩评级:
当平均成绩大于90时,评级为A
当平均成绩在60~90之间时,评级为B
当平均成绩小于60时,评级为C
因为后面评定奖学金资格时还需要用到评级,为了方便,这里创建一个函数
int rating(int x_)
{
if (x_ >= 90 && x_ <= 100)
return 4;
else if (x_ >= 60 && x_ <= 89)
return 3;
else if (x_ >= 0 && x_ <= 59)
return 2;
else
return 1;
}
运用此函数进行评级
switch (rating(x_))
{
case 4:
{
printf("等级:A\n");
break;
}
case 3:
{
printf("等级:B\n");
break;
}
case 2:
{
printf("等级:C\n");
break;
}
case 1:
{
printf("平均值发生错误!您疑似成绩造假,请重新输入!\n");
goto again;
break;
}
}
*这里的goto则连接到上面所说的again那里
最后则是进行竞选奖学金资格的评定,将会用到上面的数组和函数rating的结果
判定条件为:
当有三科及以上的成绩分数不小于95分,并且评级为A时,可以评定特等奖学金
当有三科及以上的成绩分数不小于85分,并且评级为A时,可以评定一等奖学金
当有两科及以上的成绩分数不小于85分,并且评级为B时,可以评定二等奖学金
当有两科及以上的成绩分数不小于80分,并且评级为B时,可以评定三等奖学金
在这里我创建了个函数来判定期末成绩部分的要求:
int bur(int *arr)
{
int a = 0, b = 0, c = 0, j;
for (j = 5; j > 0; j--)
{
if (*arr >= 95)
{
a++;
}
else if (*arr >= 85 && *arr < 95)
{
b++;
}
else if (*arr >= 80 && *arr < 85)
{
c++;
}
arr++;
}
if (a >= 3)
return 4;
else if (a + b >= 3)
return 3;
else if (a + b == 2)
return 2;
else if (a + b + c >= 2 && a + b < 2)
return 1;
else
return 0;
}
最后根据得出的结果来输出评定内容就可以了
int jx = bur(arr1);
if (rating(x_) == 4 && jx == 4)
{
printf("可竞选特等奖学金");
}
else if (rating(x_) == 4 && jx == 3 || jx == 4)
printf("可竞选一等奖学金");
else if (rating(x_) == 3 && jx == 2 || jx == 3 || jx == 4)
printf("可竞选二等奖学金");
else if (rating(x_) == 3 || jx == 1)
printf("可竞选三等奖学金");
End