该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不知道原作者是谁...
#include
int i;
float cal(float x)
{
if(x>100)
{
printf("please input between 0~100");
i--;
return 0;
}
if(x<=100&&x>=90)
{
return 4;
}
if(x<90&&x>=85)
{
return 3.7;
}
if(x<85&&x>=82)
{
return 3.3;
}
if(x<82&&x>=78)
{
return 3;
}
if(x<78&&x>=75)
{
return 2.7;
}
if(x<75&&x>=72)
{
return 2.3;
}
if(x<72&&x>=68)
{
return 2.0;
}
if(x<68&&x>=66)
{
return 1.7;
}
if(x<66&&x>=63)
{
return 1.3;
}
if(x<63&&x>=60)
{
return 1;
}
if(x<60)
{
printf("\n温馨提示:\n补考过后无论成绩为多少,该科绩点都为1.0哦\n本次结果为补考及格后的平均绩点\n\n");
return 1;
}
}
void welcome()
{
printf("---------------说明---------------\n");
printf("----------平均学分绩点按----------\n");
printf("-----全部课程学分绩点之和除以-----\n");
printf("-------这些课程学分之和计算-------\n");
printf("\n学分绩点=该课程学分数*绩点数\n");
}
int main()
{
welcome();
float x,sum=0,ave;
float a[]={1,2,0.5,3,3,5.5,2,2,3,3,3,1};//以下面所列科目顺序保存各科的学分
char *kemu[12]={
"心理健康教育",
"大学生职业发展与就业指导",
"专业概论",
"C语言程序设计",
"计算机科学导论",
"高等数学(上)",
"大学英语1(视听说)",
"大学英语1(读写译)",
"马克思主义基本原理",
"思想道德修养与法律基础",
"工程图学与计算机绘图",
"体育(1)"};
for(i=0;i<12;i++)
{
printf("请输入%s的分数:",kemu[i]);
scanf("%f",&x); sum+=cal(x)*a[i]; }
ave=sum/29;
if(ave>=3.4)
printf("你的绩点是%f,你第二学期可以选课先选了\n",ave);
else
printf("你的绩点是%f,平均学分绩点未达3.4\n",ave);
}