| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 354 人关注过本帖
标题:求教C出錯了,分數分類的問題,謝謝大家
只看楼主 加入收藏
C的果冻
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-3-15
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:5 
求教C出錯了,分數分類的問題,謝謝大家
要求把考試分數(0-30,整數)按15分以下,15-17,17以上,進行分類。
可以運行,但是我輸入每隔一個數就會叫我重新輸入,本來設定的重新輸入是只有在分數小於0或者大於三十的時候才會有的
#include <stdio.h>
#include <stdlib.h>

int main()
{
  int s,x=0,y=0,z=0;
  float fail,inc,pass;
  while (x+y+z<20)
  {printf("Enter score:\n");
   scanf("%d",&s);
   do
   {printf("You enter a wrong score\n");
    printf("Enter score again:\n");
    scanf("%d",&s);
   }while((s<0)||(s>30));
   if (s<15) x=x+1;
   else if(s<=17) y=y+1;
         else z=z+1;
  }
  fail=(float)x/20*100;
  inc=(float)y/20*100;
  pass=(float)z/20*100;

  return 0;
}
搜索更多相关主题的帖子: include Enter wrong 
2012-03-29 22:32
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:0 
因为你没有输出,只能让你不断输入了!

最基础的往往是你最容易忽略的!
2012-03-29 22:37
a935245228
Rank: 2
来 自:湖北武汉
等 级:论坛游民
帖 子:45
专家分:56
注 册:2012-3-12
收藏
得分:0 
楼上的正解
2012-03-29 22:40
C的果冻
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-3-15
收藏
得分:0 
回复 2楼 于祥
不好意思,沒看懂誒...
printf("Enter score:\n");
   scanf("%d",&s);
   do
這個不是輸入麼?並且在do..while循環之前
2012-03-29 23:06
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:20 
你第一次输入如果是12的话,继续向下执行,do while()是后验循环,至少执行一次,进入do while()中有一个printf("Enter score:\n");
    scanf("%d",&s);然后判断是否((s<0)||(s>30)),结果是否,跳出循环,继续执行,但你后边的程序中没有输出函数,执行完到 else z=z+1;
 后又重新循环while()因为你的x+y+z一直都小于20(x,y,z值没有改变),又一次printf("Enter score:\n"); scanf("%d",&s);一直这样循环下去

最基础的往往是你最容易忽略的!
2012-03-29 23:14
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
do   
{}while()
这个先执行一次的吧

编程之路定要走完……
2012-03-29 23:17
快速回复:求教C出錯了,分數分類的問題,謝謝大家
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022029 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved