返回信息流小弟今年大一,这两天算GPA算的很烦,就编了个程序但是程序运行没法出结果,最终的GPA结果总是:-1.#IND00
请教一下各位大牛这是为什么?应该怎样修改?
(由于一二级班英语学分为4分,三级半为3分,所以有个判断。另外没有考虑二三级班乘以多少系数。这个程序仅适用于09届电院。)、
至于代码冗余之类的问题可以不谈。
#include<stdio.h>
void main()
{
double s1(int a[12],int k);
double s2(int n);
int a[12],i,j,k;
double a1,a2,average;
printf("请依次输入你的以下成绩:大英,体育,安全教育,大计,高数,军理,形势与政策,线代,选修,近代史,思修,C。\n");
for(i=0;i<12;i++)
scanf("%d",&a[i]);
printf("你是英语几级班?请输入一个数字。");
scanf("%d",&j);
if(j>0&&j<3)
{
k=4;
a1=s1(a,4);
a2=s2(4);
average=a1/a2;
};
if(j==3)
{
k=3;
a1=s1(a,3);
a2=s2(3);
average=a1/a2;
};
printf("平均成绩GPA为:%f\n",average);
}
double s1(int a[12],int k)
{
double sum=0.0;
sum=a[0]*k+a[1]*2+a[2]*0.5+a[3]*2+a[4]*6+a[5]*2+a[6]*0.4+a[7]*2+a[8]*2+a[9]*2+a[10]*3+a[11]*2;
return(sum);
}
double s2(int n)
{
if(n>0&&n<3) return(28.9);
if(n==3) return(27.9);
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #35632同步于 2010/2/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求助]这个程序的问题在哪儿?
Rvtea
2010/2/3镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
#include <stdio.h>
int main() {
FILE *fp = fopen("score.txt", "rb");
double score, index;
double scoresum = 0.0;
double indexsum = 0.0;
char line[BUFSIZ];
while (fgets(line, BUFSIZ, fp)) {
sscanf(line, "%lf %lf", &score, &index);
scoresum += score * index;
indexsum += index;
}
fclose(fp);
printf("%f\n", scoresum / indexsum);
}
好吧,这是代码,你在文件夹下面建立一个名字叫 score.txt 的文件,
文件的每一行写成这样的形式就可以了。
89 4 英语
78 2.5 C语言
80 3 马哲
……
【 在 ericyosho 的大作中提到: 】
: 好吧,我看懂了,不过说实话s2函数里面应该是27.9和26.9吧,如果没有看错的话,是所有的学分加起来?
: 真晕……
这个,我是按照北邮系统的结果来的,没有直接计算过,不过刚刚来看貌似确实是那样。。。。
【 在 ericyosho 的大作中提到: 】
: #include <stdio.h>
: int main() {
: FILE *fp = fopen("score.txt", "rb");
: ...................
谢了。。。但是我还是想知道我的程序问题出在哪里~~