思考了好久,希望哪位大神可以指点指点,感激不尽!

陌-小染 2014-03-18 10:26:38

编程实现:读入5名学生的C语言成绩,输出成绩在60`~85之间的学生总人数
要求用到循环结构while 的内容!



#include <stdio.h>
void main ()
{
int score,score1,score2,score3,score4,score5, sum=0;

scanf("%d,%d,%d,%d,%d",&score1,&score2,&score3,&score4,&score5);
while (score>=60&&score<=85)
{sum+=1;}

printf("sum=%d",sum);

}
...全文
210 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mujiok2003 2014-03-20
  • 打赏
  • 举报
回复
引用 1 楼 gz_qmc 的回复:
还思考很久,丢人
谁都曾经是菜鸟,没有什么丢人的。
_暮落_ 2014-03-20
  • 打赏
  • 举报
回复
赵4老师 2014-03-19
  • 打赏
  • 举报
回复
不要使用
while (条件)
更不要使用
while (组合条件)
要使用
while (1) {
 if (条件1) break;
 //...
 if (条件2) continue;
 //...
 if (条件3) return;
 //...
}
因为前两种写法在语言表达意思的层面上有二义性,只有第三种才忠实反映了程序流的实际情况。
典型如:
下面两段的语义都是当文件未结束时读字符
while (!feof(f)) {
 a=fgetc(f);
 //...
 b=fgetc(f);//可能此时已经feof了!
 //...
}
而这样写就没有问题:
while (1) {
 a=fgetc(f);
 if (feof(f)) break;
 //...
 b=fgetc(f);
 if (feof(f)) break;
 //...
}
类似的例子还可以举很多。
  • 打赏
  • 举报
回复
LZ主要是没有搞明白while循环需要判定条件的
jounehou 2014-03-19
  • 打赏
  • 举报
回复
#include <stdio.h> int main(void) { int sno = 0; int i = 5; while(i --) { int score; scanf("%d",&score); if(score >= 60 && score <= 85) sno++; } printf("%d",sno); return 0; }
__phoenix 2014-03-19
  • 打赏
  • 举报
回复
不用这么麻烦吧

#include <stdio.h>
int main(void)
{
	int sno		= 0;
	int i = 0;
	while(i < 5)
	{
		int score;
		scanf("%d",&score);
		if(score >= 60 && score <= 85)
			sno += 1;
		i += 1;
	}
	printf("%d",sno);
	return 0;
}
百曉生 2014-03-19
  • 打赏
  • 举报
回复
scanf中最好不要加非输入控制符(这里指逗号),关于scanf,lz可以看看这个——http://blog.csdn.net/u012421456/article/details/18501309 关于scanf的事已经在这里见过不少次了
百曉生 2014-03-19
  • 打赏
  • 举报
回复
#include <stdio.h>
void main ()
{
	int score[5], sum = 0, i = 0;
	
	scanf("%d %d %d %d %d", &score[0], &score[1], &score[2], &score[3], &score[4]);
	while (i < 5)
	{
		if(score[i]>=60 && score[i]<=85)
		{
			sum += 1;
		}
		i++;
	}
	printf("sum = %d\n", sum);
	
} 
这样才行
堂风 2014-03-19
  • 打赏
  • 举报
回复
int i = 5; while( i-- ){ }
百曉生 2014-03-19
  • 打赏
  • 举报
回复
lz啊,你。。。唉 循环里根本没有改变条件的变量,怎么能结束循环啊 一楼代码稍有点儿问题,待会儿我改改啊
tuzhutuzhu 2014-03-19
  • 打赏
  • 举报
回复
你输入的内容又没赋值给score这个变量,拿score来判断肯定是错的。再说你的循环条件也不对
gz_qmc 2014-03-18
  • 打赏
  • 举报
回复
还思考很久,丢人 #include <stdio.h> void main () { int score[5], sum=0,i=0; scanf("%d,%d,%d,%d,%d",&score[0],&score[1],&score[2],&score[3],&score[4]); while (i<5) { if(score[i]>=60&&score[i]<=85) sum+=1;} i++; } printf("sum=%d",sum); }

69,371

社区成员

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

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