这是关于一个求绩点的代码,但问题在
1:课程数和需要输入的成绩数不一致(总需要多输入一次成绩),
2:本身的计算结果也存在误差。
#define _CRT_SECURE_NO_WARNINGS
#include
int main()
{
int num; int i = 0;
int score[20]; double grade[20];
double jidian = 0;
double sumgrade = 0;
double sum = 0, item = 0;
printf("欢迎使用!\n");
printf("请输入课程数:/门");
scanf("%d", &num);
printf("请按照学分 分数输入\n");
for (i = 1; i scanf("%lf %d\n", &grade[i], &score[i]);
if (score[i] < 60)
jidian = 0.0;
else if (score[i] >= 60 && score[i] <= 63)
jidian = 1.0;
else if (score[i] >= 64 && score[i] <= 67)
jidian = 1.5;
else if (score[i] >= 68 && score[i] <= 71)
jidian = 2.0;
else if (score[i] >= 72 && score[i] <= 74)
jidian = 2.3;
else if (score[i] >= 75 && score[i] <= 77)
jidian = 2.7;
else if (score[i] >= 78 && score[i] <= 81)
jidian = 3.0;
else if (score[i] >= 82 && score[i] <= 84)
jidian = 3.3;
else if (score[i] >= 85 && score[i] <= 89)
jidian = 3.7;
else if (score[i] >= 90 && score[i] <= 100)
jidian = 4.0;
item = jidian * grade[i];
sum = sum + item;
sumgrade = sumgrade + grade[i];
}
double result;
result = sum / sumgrade;
printf("平均学分绩点%lf", result);
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int num; int i = 0;
int score[20]; double grade[20];
double jidian[] = { 0.0, 1.0, 1.5, 2.0, 2.3, 2.7, 3.0, 3.3, 3.7, 4.0 };
double sum = 0, item = 0;
printf("欢迎使用!\n");
printf("请输入课程数:/门");
scanf("%d", &num);
printf("请按照学分 分数输入\n");
for (i = 0; i < num; i++)
{
scanf("%lf %d", &grade[i], &score[i]);
if (score[i] >= 60 && score[i] <= 100)
item = jidian[score[i] / 10 - 6] * grade[i];
else
item = 0;
sum += item;
}
double result;
result = sum / num;
printf("平均学分绩点%lf", result);
return 0;
}