c语言求助!

scanf("%d",&m);for(i=0;i<m;i++){printf("credit:");scanf("%f\n",credit);printf("score:... scanf("%d",&m);
for(i=0;i<m;i++)
{
printf("credit:");
scanf("%f\n",credit);
printf("score:");
scanf("%f\n",score);
sums+=(score[i]*credit[i]);
sumg+=credit[i];
}

printf("GPA=%f",sums/sumg);
高人帮我看看是什么地方出了问题,编译的时候总是无法正常工作.
score[i]和credit[i]均为浮点数组,并且必须要满足想同的数位的数组元素相乘这一功能比如score[3]*credit[3];编译出现的问题是能输入,编译器能通过语法检测,但是答案结果跟我预期的不一样,我要算的其实是一个加权算法,就是大学里算GPA的方法.你们的答案我试了似乎都不行.
完整代码:
#include<string.h>
#include<stdio.h>
void main()
{
float credit[50]={0},score[50]={0},sumg=0,sums=0;
unsigned int i,m;
clrscr();
puts("how many courses you want to calculate?");
scanf("%d",&m);
for(i=0;i<m;i++)
{
printf("credit:");
scanf("%f\n",credit);
printf("score:");
scanf("%f\n",score);
sums+=(score[i]*credit[i]);
sumg+=credit[i];
}

printf("GPA=%f",sums/sumg);
getch();
}你们可以自己复制试一下
展开
 我来答
柳月清风凉
2008-02-05
知道答主
回答量:6
采纳率:0%
帮助的人:9.2万
展开全部
你都没完成赋值操作啊!scanf()函数里是接地址没错,但是credit和score只是数组第一个数据的地址而已,你是循环了m次,但每次只是把数据写到了第一个元素里,后面还是初始值0。
应该改成
for(i=0;i<m;i++){
...
scanf("%f",&credit[i]);
...
scanf("%f",&score[i]);
....
}//i的自加实现数组向后赋值
还有你写的scanf("%f\n",credit); scanf是屏幕输入函数,把\n加在后面就会出错,真想加就在后面再加个printf专门输出\n,这两个改了就好了。

这是我改了的代码,能运行,你自己再拿去试一下:
#include<string.h>
#include<stdio.h>
void main()
{
float credit[50]={0},score[50]={0},sumg=0,sums=0;
unsigned int i,m;
clrscr();
puts("how many courses you want to calculate?");
scanf("%d",&m);
for(i=0;i<m;i++)
{
printf("credit:");
scanf("%f",&credit[i]);
printf("score:");
scanf("%f",&score[i]);
sums+=(score[i]*credit[i]);
sumg+=credit[i];
}
printf("GPA=%f",sums/sumg);
getch();
}
nebreeze
2008-02-04 · TA获得超过269个赞
知道答主
回答量:128
采纳率:0%
帮助的人:0
展开全部
scanf("%f\n",credit)和scanf("%f\n",score)中的两个变量定义应该是浮点型的,
但后面的又把它当成浮点型的数组.有冲突.把后面的改为
sums+=(score*credit)和sumg+=credit.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
genie2014
2008-02-04 · TA获得超过6488个赞
知道小有建树答主
回答量:1140
采纳率:0%
帮助的人:902万
展开全部
小朋友要打pp了,看看下面这两句:
scanf("%f\n",credit);
scanf("%f\n",score);
应该是:
scanf("%f\n",&credit);
scanf("%f\n",&score);
这个错误一定要避免,不然以后要吃大亏的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
packdown
2008-02-04 · TA获得超过194个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:0
展开全部
sums+=(score[i]*credit[i]);
sumg+=credit[i]; 改为sums+=(score*credit);
sumg+=credit;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一变班爱麻啊堡0J
高粉答主

2020-01-13 · 醉心答题,欢迎关注
知道答主
回答量:11.4万
采纳率:2%
帮助的人:5453万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式