大神帮我看看这个哪里错了,平均分数不对

# include <stdio.h> int main(void) { int i, j, k; float a; k = 0; i = 1; printf("请输入分数,以-1结束:"); scanf("%d", &j); while (j != -1) { k = k + j; i = i + 1; printf("请输入分数,以-1结束:"); scanf("%d", &j); } if (i != 0) { a = (float) k / i; printf("平均分数是:%.2f\n", a); } else printf("No\n"); return 0; }
...全文
236 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
刚才打断点 逐步循环了一下!发现应该是i=0
  • 打赏
  • 举报
回复
引用 5 楼 qq_42755412 的回复:
[quote=引用 4 楼 不减20斤不换网名的回复:][quote=引用 3 楼 qq_42755412 的回复:]# include <stdio.h>

int main(void)
{
int i, j, k;
float a;

k = 0;
i = 1;//初始应该改为0,即i=0;

printf("请输入分数,以-1结束:");
scanf("%d", &j);

while (j != -1)
{
k = k + j;
i = i + 1;

printf("请输入分数,以-1结束:");
scanf("%d", &j);
}
//printf("%d",i); 循环结束时i比输入的值的个数多1
if (i != 0)
{
a = (float) k / i;
printf("平均分数是:%.2f\n", a);
}
else
printf("No\n");


return 0;
}
谢谢大哥[/quote] 没事,很高兴帮到你。有问题还可以问我,只不过缺点积分下东西[/quote]太直接了
Gxm :) 2019-08-22
  • 打赏
  • 举报
回复
引用 4 楼 不减20斤不换网名的回复:
[quote=引用 3 楼 qq_42755412 的回复:]# include <stdio.h>

int main(void)
{
int i, j, k;
float a;

k = 0;
i = 1;//初始应该改为0,即i=0;

printf("请输入分数,以-1结束:");
scanf("%d", &j);

while (j != -1)
{
k = k + j;
i = i + 1;

printf("请输入分数,以-1结束:");
scanf("%d", &j);
}
//printf("%d",i); 循环结束时i比输入的值的个数多1
if (i != 0)
{
a = (float) k / i;
printf("平均分数是:%.2f\n", a);
}
else
printf("No\n");


return 0;
}
谢谢大哥[/quote] 没事,很高兴帮到你。有问题还可以问我,只不过缺点积分下东西
  • 打赏
  • 举报
回复
引用 3 楼 qq_42755412 的回复:
# include <stdio.h>

int main(void)
{
int i, j, k;
float a;

k = 0;
i = 1;//初始应该改为0,即i=0;

printf("请输入分数,以-1结束:");
scanf("%d", &j);

while (j != -1)
{
k = k + j;
i = i + 1;

printf("请输入分数,以-1结束:");
scanf("%d", &j);
}
//printf("%d",i); 循环结束时i比输入的值的个数多1
if (i != 0)
{
a = (float) k / i;
printf("平均分数是:%.2f\n", a);
}
else
printf("No\n");


return 0;
}
谢谢大哥
自信男孩 2019-08-19
  • 打赏
  • 举报
回复
# include <stdio.h>

int main(void)
{
int i, j, k;
float a;

k = 0;
//i = 1;
i = 0;
printf("请输入分数,以-1结束:");
scanf("%d", &j);

while (j != -1)
{
k = k + j;
i = i + 1;

printf("请输入分数,以-1结束:");
scanf("%d", &j);
}
printf("k = %d, i = %d\n", k, i);
if (i != 0)
{
a = (float) k / i;
printf("平均分数是:%.2f\n", a);
}
else
printf("No\n");


return 0;
}

供参考~
i应该从0开始。
E_stream 2019-08-19
  • 打赏
  • 举报
回复
把i的初始值改成0,试一试
Gxm :) 2019-08-19
  • 打赏
  • 举报
回复
# include <stdio.h>

int main(void)
{
int i, j, k;
float a;

k = 0;
i = 1;//初始应该改为0,即i=0;

printf("请输入分数,以-1结束:");
scanf("%d", &j);

while (j != -1)
{
k = k + j;
i = i + 1;

printf("请输入分数,以-1结束:");
scanf("%d", &j);
}
//printf("%d",i); 循环结束时i比输入的值的个数多1
if (i != 0)
{
a = (float) k / i;
printf("平均分数是:%.2f\n", a);
}
else
printf("No\n");


return 0;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧