c语言实现求成绩 编译正确 但是运行结果错了 怎么回事啊
/*第一个为奖学金成绩的计算:算法为:文化课成绩由课程学习综合成绩组成,课程包括德育课和必修课,不包括选修课(全班分散上的选修课)和体育成绩。
计算方法为:文化课成绩=综合成绩*65%
综合成绩=(∑K1M1*3+∑K2M2*2)/(∑M1*3+∑M2*2)
其中:K1,M1 分别代表某门考试课的成绩和课时
K2,M2分别代表某门考查课的成绩和课时。*/
#include <stdio.h>
int sum1(int *p,int *q)
{int i,m,sum=0;
for(i=0;i!='\0';i++)
{
m=*(p+i)*(*(q+i));
sum=3*m+sum;
}
return sum;
}
int sum2(int *m,int *n)
{
int i,sum=0,t;
for(i=0;i!='\0';i++)
{
t=*(m+i)*(*(n+i));
sum=2*t+sum;
}
return sum;
}
int sum3(int *q)
{
int i,j=0;
for(i=0;i!='\0';i++)
{j=j+*(q+i)*3;
}
return j;
}
int sum4(int *n)
{
int i,j=0;
for(i=0;i!='\0';i++)
{j=j+*(n+i)*2;}
return j;
}
void main()
{
int i,j,k,l,x,y,s1,s2,s3,s4;
float s,S;
int a[30],b[30],c[30],d[30];
l=1;
j=0;
k=0;
x=0;
y=0;
while(l!=0)
{printf("如果是考试课请输入1,考查课输入0:");
scanf("%d",&i);
if(i==1)
{
printf("请输入本门课的成绩:");
scanf("%d",&a[j]);
printf("请输入本门课的课时:");
scanf("%d",&b[k]);
j++;k++;
}
else
{
printf("请输入本门课的成绩:");
scanf("%d",&c[x]);
printf("请输入本门课的课时:");
scanf("%d",&d[y]);
x++;y++;
}
printf("输入结束请输入0,否则请输入1:");
scanf("%d",&l);
}
s1=sum1(a,b);
s2=sum2(c,d);
s3=sum3(b);
s4=sum4(d);
printf("考试课s1%d\n",s1);
printf("考试课s3%d\n",s3);
printf("考查课s2%d\n",s2);
printf("考查课s3%d\n",s4);
s=(float)(s1+s2)/(s3+s4);
printf("综合成绩为:%f",s);
S=(s*65)/100;
printf("文化课成绩为:%f",S);
}