搜索
查看: 223|回复: 1
打印 上一主题 下一主题

为什么while哪里没有运行

[复制链接]
跳转到指定楼层
楼主
 楼主| 发表于 2020-4-23 21:06:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
12啊哈币
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.     float s=0,score,w;
  6.     int n=0;
  7.     printf("放入成绩,输入-1结束");
  8.     scanf("%f",&score);
  9.     while(score=!-1)
  10.     {
  11.         n++;
  12.         s=s+score;
  13.         scanf("%d",&score);
  14.     }
  15.     if(n>0)
  16.     {
  17.      w=s/n;
  18.     }
  19.     else{
  20.         printf("没有学生成绩");
  21.     }
  22.     return 0;
  23. }
复制代码

沙发
发表于 2020-5-12 20:37:39 | 只看该作者
本帖最后由 嘟嘟编程 于 2020-5-13 13:15 编辑

因为while的执行规则是先判断表达式,再执行。表达式是直到表达式为假才跳出循环。你判断是否不等于-1,如果你输入0、1、2、3、4……第一次表达式为假,循环自然就没有执行了

改正后的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    float s=0,score,w;
    int n=0;
    printf("放入成绩,输入-1结束");
    scanf("%d",&score);
    while(score==-1)    //此处改成==        
    {
        n++;
        s=s+score;
        scanf("%d",&score);
    }
    if(n>0)
    {
     w=s/n;
    }
    else{
        printf("没有学生成绩");
    }
    return 0;
}




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表