真心求教!简单的C语言程序。请看说明。

输入一组数据,求其平均值,当输入的数据大于100或者小于0时,终止程序并输出平均值!最后输出的平均值不能把最后输入的错误数据算进去(只计算输入正确的数据的总和的平均值)。... 输入一组数据,求其平均值,当输入的数据大于100或者小于0时,终止程序并输出平均值!最后输出的平均值不能把最后输入的错误数据算进去(只计算输入正确的数据的总和的平均值)。用 for 语句。

帮我看一下, 我的为什么会无法终止循环?
#include <stdio.h>
void main()
{
int a,b=1;
float t,s;
printf("请键入第%d个成绩:\n",b);
scanf("%f",&s);
for (;((s<=100)||(s>=0));)
{
t=s;
b++;
printf("请键入第%d个成绩:\n",b);
scanf("%f",&s);
t=t+s;
}
printf("您键入的成绩的平均分是:%f\n",(t-s)/(b-1));
}
展开
 我来答
IT孤鹜
2013-04-18 · TA获得超过4198个赞
知道大有可为答主
回答量:3960
采纳率:71%
帮助的人:3986万
展开全部
#include <stdio.h>
void main()
{
int a,b=1;
float t,s;
printf("请键入第%d个成绩:\n",b);
scanf("%f",&s);
for (;((s<=100) && (s>=0));) //这里是&& ,不是|| ,如果是|| 他是一个全集,你输入什么都为真
{
t=s;
b++;
printf("请键入第%d个成绩:\n",b);
scanf("%f",&s);
t=t+s;
}
printf("您键入的成绩的平均分是:%f\n",(t-s)/(b-1));
}
追问
好像这样改了之后, 可以控制循环了, 但是计算平均值还是好像有问题(还是不对), 可以帮我检查一下吗?(检查之后再运行试试看) 谢谢了。
追答
#include void main()
{
int a,b=1;
float t=0,s;//初始化
printf("请键入第%d个成绩:\n",b);
scanf("%f",&s);
for (;((s=0));) //这里是&& ,不是|| ,如果是|| 他是一个全集,你输入什么都为真
{
//t=s;你这里有问题
t=t+s;
b++;
printf("请键入第%d个成绩:\n",b);
scanf("%f",&s);

}printf("您键入的成绩的平均分是:%f\n",t/(b-1)); //这里没必要减s
}
qwhuang2012
2013-04-18 · TA获得超过1664个赞
知道小有建树答主
回答量:1100
采纳率:0%
帮助的人:998万
展开全部
代码可以写得更精炼些 :

#include <stdio.h>
void main()
{
int b=0;
float s,t=0.0;
for (;;)
{
printf("请键入第%d个成绩:\n",++b);
scanf("%f",&s);
if ((s>100)||(s<0))
break;
t=t+s;
}
printf("您键入的成绩的平均分是:%f\n",t/b));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友83cdc1c
2013-04-18 · TA获得超过5792个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:1047万
展开全部
#include <stdio.h>
void main()
{
int a,b=1;
float t,s;
printf("请键入第%d个成绩:\n",b);
scanf("%f",&s);
for (;((s<=100)&&(s>=0));) //这里改为&&
{
t=s; //这一行移到for循环前面
b++;
printf("请键入第%d个成绩:\n",b);
scanf("%f",&s);
t=t+s;
}
printf("您键入的成绩的平均分是:%f\n",(t-s)/(b-1));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
seanyan7
2013-04-18 · TA获得超过246个赞
知道答主
回答量:268
采纳率:0%
帮助的人:70.6万
展开全部
#include <stdio.h>
void main()
{
int a,b=1;
float t,s,sum;
printf("请键入第%d个成绩:\n",b);
scanf("%f",&s);
for (;((s<=100) && (s>=0));) //这里是&& ,不是|| ,如果是|| 他是一个全集,你输入什么都为真
{
t=s;
b++;
printf("请键入第%d个成绩:\n",b);
scanf("%f",&s);
sum=sum+t;
}
printf("您键入的成绩的平均分是:%f\n",(t-s)/(b-1));
}
你的t变量用的重复了,再用个变量替代一下,我用sum
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
outspaceman19
2013-04-18 · TA获得超过1080个赞
知道小有建树答主
回答量:749
采纳率:100%
帮助的人:463万
展开全部
循环写错了for (;((s<=100)||(s>=0));)
改为for (;((s<=100)&&(s>=0));)
你之前的条件是s为任何数都能满足
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maofelix
2013-04-18 · TA获得超过131个赞
知道答主
回答量:179
采纳率:0%
帮助的人:93.8万
展开全部
for (;((s<=100)||(s>=0));)

你这不应该用|| 而应该用 &&
for (;((s<=100)&&(s>=0));) 表示既满足小于等于100,又满足大于等于0,你||上的话,所有的数都满足要么小于等于100 要么大于等于0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式