c语言关于加权平均分计算奖学金的问题

内容每个人学的课程数量都为12门,并且以82.13为界加权平均分 = 每门课程成绩与课程所修学分的乘积之和除以个人所修的总学分。 注意如果有一门课程挂科了的,就不能参与奖学金的评选。挂科的意思是:成绩低于60分,不包括60输入要求首先一行输入一个整数T (1 <= T <= 120),表示1学生总人数。 接下来共N行 ,每行有24个数字,奇数位数字为该门课程的学分N (1 <= N <= 5),偶数位数字为前面学分对应课程的最终成绩M (0 <= M <= 100)。N和M均为整数输出要求每组数据输出一行,包括一个浮点数K以及一个整数L。K表示参加奖学金竞选的人中最高的加权平均分,保留两位小数。L表示参加奖学金竞选的人里比82.13高分的人数,没有则输出82.13和0。示例输入11 99 5 98 4 98 2 97 3 99 2 99 5 96 4 99 3 98 1 94 2 98 3 99示例输出97.91 1示例输入与输出

手打的 但没编译检查是否正确- -~

#include <stdio.h>

#define KECHENG 12
#define JIANGJIN_LINE 82.13
#define JIGE 60
#define KEMU 12
#define TRUE 1
#define FALSE 0

void input_Num(int *Num)
{
printf("input Num \r\n");
scanf("%d",Num);
}

void input_Chengji(int *Xuefen,int *Chengji)
{
int i;
for(i=0;i<KEMU;i++)
{
printf("input No. %d Xuefen \r\n",i);
scanf("%d",&Xuefen[i]);
printf("input No. %d Chengji \r\n",i);
scanf("%d",&Chengji[i]);
}

}

int Sum_Xuefen(int *Xuefen)
{
int Result;
int i;
Result = 0;
for(i=0;i<KEMU;i++)
{
Result = Result + Xuefen[i];
}
return Result;

}

int Sum_Chengji(int *Chengji)
{
int Result;
int i;
Result = 0;
for(i=0;i<KEMU;i++)
{
Result = Result + Chengji[i];
}
return Result;

}

int Output_JiGeCheck(int *Chengji)
{
int i;
int Result;
Result = TRUE;
for(i=0;i<KEMU;i++)
{
if(Chengji[i]<60)
{
Result = FALSE;
break;
}
}
return Result;
}

void OutputResult()
{
int T;
int i;
int L;
int chengji[KEMU];
int xuefen[KEMU];
float MaxChengji;
float TempChengji;
MaxChengji = JIANGJIN_LINE;
L = 0;
input_Num(&T);
for(i=0;i<T;i++)
{
input_Chengji(&xuefen[0],&chengji[0]);
if(TRUE == Output_JiGeCheck(&chengji[0])
{
TempChengji = Sum_Chengji(&chengji[0])/Sum_Xuefen(&xuefen[0]);
}
if(TempChengji > JIANGJIN_LINE)
{
L++;
if(TempChengji > MaxChengji)
{
MaxChengji = TempChengji;
}

}
}
printf("%.2f , %d",MaxChengji,L);

}
温馨提示:答案为网友推荐,仅供参考
相似回答