请高手指点错误
想通过两个数组,和调用一个函数求得自己的加权平均分,一个数组存放成绩,另一个存放学分.TC2编译通过,但结果不对.
现将代码复制如下:
#include<stdio.h>
main()
{
float fun(int x[12],float y[12]);
int i,j;
float k;
int a[12];
float b[12];
printf("please inter the scores:\n");
for(i=0;i<12;i++)
scanf("%d",&a[i]);
printf("please inter the datas:\n");
for(j=0;j<12;j++)
scanf("%f",&b[j]);
k=fun(a,b);
printf("k=%f\n",k);
getch();
return(0);
}
float fun(int x[12],float y[12])
{
int i,j;
int a[12];
float b[12];
float r,s,aver;
r=0,s=0,aver=0;
for(i=0;i<12;i++)
for(j=0;j<12;j++)
{
r=a[i]*b[j];
s+=b[j];
aver=r/s;
}
return(aver);
}
这是我第一次发贴,小弟在线等.
谢谢!
----------------解决方案--------------------------------------------------------
函数有问题,修改如下:
float fun(int x[12],float y[12])
{
int i;
float r,s,aver;
r=0,s=0,aver=0;
for(i=0;i<12;i++)
{
s+=x[i]*y[i];
r+=x[i];
}
aver=s/r;
return aver;
}
----------------解决方案--------------------------------------------------------
多谢,按照你的指点,错误改正了,结果也正确.只是把"r+=x[i]"改成"r+=y[i]"就可以.
十分感谢!
----------------解决方案--------------------------------------------------------