啊哈磊_编程从这里起步

标题: 为什么while哪里没有运行 [打印本页]

作者: 怪兽大军    时间: 2020-4-23 21:06
标题: 为什么while哪里没有运行
  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
本帖最后由 嘟嘟编程 于 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;
}









欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2