
真心求教!简单的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));
} 展开
帮我看一下, 我的为什么会无法终止循环?
#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));
} 展开
6个回答
展开全部
#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));
}
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
}
展开全部
代码可以写得更精炼些 :
#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));
}
#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));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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));
}
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));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
循环写错了for (;((s<=100)||(s>=0));)
改为for (;((s<=100)&&(s>=0));)
你之前的条件是s为任何数都能满足
改为for (;((s<=100)&&(s>=0));)
你之前的条件是s为任何数都能满足
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for (;((s<=100)||(s>=0));)
你这不应该用|| 而应该用 &&
for (;((s<=100)&&(s>=0));) 表示既满足小于等于100,又满足大于等于0,你||上的话,所有的数都满足要么小于等于100 要么大于等于0
你这不应该用|| 而应该用 &&
for (;((s<=100)&&(s>=0));) 表示既满足小于等于100,又满足大于等于0,你||上的话,所有的数都满足要么小于等于100 要么大于等于0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询