求大神指正average函数为什么错了,算不出结果

#include<stdlib.h>
#include<stdio.h>
#define M 3
#define N 5
double a[M],b[N];
struct Studtype
{
char name[15];
long num;
double score[3];
}stu[N],s[N];

void input(struct Studtype s[N])
{
int i,j;
char numstr[15];
for(i=0;i<N;i++)
{
printf("\ninput all data of s[%d]:\n",i+1);
gets(s[i].name);
gets(numstr);s[i].num=atoi(numstr);
printf("\ninput the score\n");
for(j=0;j<M;j++)
{
gets(numstr);s[i].score[j]=atof(numstr);
}
}

}
void average(struct Studtype s[N])
{
int i;
double sum;
for(i=0;i<M;i++)
{
sum=0;
sum=s[0].score[i]+s[1].score[i]+s[2].score[i]+s[3].score[i]+s[4].score[i];
a[i]=sum/5;
}
}
double max(struct Studtype s[N])
{
int i,j,k;
double sum,ave0[N];
for(i=0;i<N;i++)
{
sum=0;
for(j=0;j<M;j++)
{
sum=sum+s[i].score[j];
}
ave0[i]=sum/M;
b[i]=sum/M;
}
for(k=0;k<N-1;k++)
{
if(ave0[k]>ave0[k+1]) ave0[k+1]=ave0[k];

}
return ave0[4];
}
int main(void)
{
int i;
struct Studtype stu[N];
input( stu);
printf("\n每门课平均分分别是:%lf %lf %lf",a[0],a[1],a[2]);
for(i=0;i<N;i++)
{
if(max(stu)==b[i])
printf("\n最高分:%s %ld %lf %lf %lf\n",stu[i].name,stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
return 0;
}
小弟刚学C不久,谢谢各位大神啦,我以后一定注意

问题在于你根本没有调用那个函数。

另外,你的程序算法写得比较乱比较死,有的地方用M、N,有的地方用3、5.
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-22
C语言是值传递所以不会等到正确的结果,你应该用指针来作为参数,才可以!在说结构体作为函数参数,效率很低的!
第2个回答  2010-12-22
你也没调用average函数呀?

求大神指正average函数为什么错了,算不出结果
问题在于你根本没有调用那个函数。另外,你的程序算法写得比较乱比较死,有的地方用M、N,有的地方用3、5.

我是C语言新手 刚开始学函数 程序出错 求大神指正(附代码)
method1和method2声明错了 void main(){ int r1,r2; int method1(int n); int method2(int n); r1=1; r2=1; printf("%d,%d",method1(r1),method2(r2));}

Matlab中的isequal用法,求大神指正!
这主要是浮点数精度问题,在matlab里出现这种情况不常见,但肯定有。要判断相等,最保险的就是:假设abs(i-j)<=1e-6就认为他们相等,当然那个精度要根据情况选取。我以前就遇到过这种问题,在这里假设你把1.9换成1.8,j换成8\/10结果可能也就对了。只能说isequal这个函数精度很高,哪怕是两个数...

Arerage的功能是什么
二、AVERAGE函数特殊用法的尝试对excel函数功能有一定了解的人士对sum函数的使用不陌生,Sum函数的作用本来是对某些单元格区域求和,但是,当我们把它和if函数结合在一起使用的时候就成为了数组函数——计数函数,它可以把单元格中符合条件的数据个数统计出来。如在一张10个班级混合编场登统后的成绩表中,...

如果用IF函数计算出个人所得税
假设A1单元格是要计算税金的工资数,B1单元格为税率,C1单元格为扣除数,D1单元格为应交税金税率的公式为:(IF(AND(A1>0,A1<=500),5%,IF(AND(A1>500,A1<=2000),10%,IF(AND(A1>2000,A1<=5000),15%,IF(AND(A1>5000,A1<=20000),20%,IF(AND(A1>20000,A1<=40000),25%。IF(AND(A1>...

计算不定积分∫x^2dx\/√a^2-x^2
x\/a)-(x\/a)√(1-x²\/a²))+C =(a²\/2)(arcsin(x\/a)-(x\/a²)√(a²-x²))+C =(a²\/2)arcsin(x\/a)-(x\/2)√(a²-x²)+C 不定积分和定积分间的关系由微积分基本定理确定。其中F是f的不定积分。

浅谈经济学与数学的关系(文章不错,与大
它把函数看成集合中的元素,把全体函数看成一个集合,在这样的视角下给出了像不动点定理这样的东西,对求函数的极值这样理论证明上经常遇到的问题给出了一般的解法,因此如果泛函不懂,在学习高等宏观经济学中,遇见涉及动态规划的问题时肯定是有很大障碍的。所以高等宏观才会有罗默的那本为数学不好的人提供的书的畅销...

相似回答
大家正在搜