如果给的中等的话,就是70多,大概算2个绩点。优秀是90
,4个绩点,良好是80,3个
绩点,中等是70,2个绩点,及格是60,1个绩点。
大概是这样的,更细的我也不太清楚。
把所有的科目
(每门课的绩点*每门课学分)/总学分
就是你的平均绩点
希望对你有帮助。
还不懂可以看看学生指南。
scanf ("\n")//应省去将if(b[i]>=90)
b[i]=4.0
else if(b[i]>=85)
b[i]=3.7
else if(b[i]>=82)
b[i]=3.3
else if(b[i]>=78)
b[i]=3.0
else if(b[i]>=72)
b[i]=2.3
else if(b[i]>=68)
b[i]=2.0
else if(b[i]>=64)
b[i]=1.5
else if(b[i]>=60)
b[i]=1.0
else b[i]=0
倒过来,把if(b[i]<60)放在最前然后是>=60,>=64,>=68,以此类推,不然仅仅一个else不行
还有最后是除以学分之和而不是总学科数
上面的大哥太复杂了吧我 来个简单的:
如果你们
0-60 绩点 0;
60-70 绩点 1;
70-80 绩点 2;
80-90 绩点 3;
90-100 绩点 4;
100 绩点 5;
那么我给的程序如下:(否则只需自己调整)
#include <stdio.h>
int main()
{
float a,eve,d,td=0,tj=0,jchar cint ra
shuru:
printf("请输入一个成绩,以及这门课程的学分是多少:(用空格分开)\n")
s:
scanf("%f%f",&a,&d)
ra=(int)a
ra=ra/10
while (ra>10||ra<0)
{
printf("成绩是大于0,小于100的,请再次输入!\n")
goto s
}
while (d<0)
{
printf("课程的学分是一个正数,请再次输入!\n")
goto s
}
switch(ra)
{
case 10:j=5break
case 9:j=4break
case 8:j=3break
case 7:j=2break
case 6:j=1break
default:j=0
}
printf("该学生这门课的绩点是%.3f,学分是%f\n",j,d)
tj+=j*d
td+=d
p:
printf("按c键继续输入成绩,按a键给出该学生的平均绩点.\n")
getchar()
c=getchar()
if ('c'==c)
goto shuru
else if('a'==c)
goto en
en:
eve=tj/td
printf("该学生的平均绩点是%.3f\n",eve)
getchar() getchar()
}
好辛苦啊,写了一个多小时。
看在辛苦分上,感谢一下我 吧
我程序已经编译好
到这里下载
http://hqu.edu.cn/cgi-bin/storage_getshare?uid=zhome&domain=hqu.edu.cn&infotoken=6b023641Sy580hVEAYSoCPl1V1eHg&down=no
一周之内下载