首页 > 编程语言 >continue跳過循環(skippaart程序),接受設定的合法分數來進行平均分求值,并展現最高分,最低分

continue跳過循環(skippaart程序),接受設定的合法分數來進行平均分求值,并展現最高分,最低分

时间:2023-01-05 23:11:07浏览次数:46  
标签:skippaart 展現 min 分數 max float score MAX 求值

 1 #include<stdio.h>
 2 int main()
 3 {
 4      const float MIN = 0.0f;   //分數下限是0分
 5      const float MAX = 100.0f; //分數上限是100分
 6 
 7      float score;
 8      float total = 0.0f;       //求總分
 9      int n = 0;                //接受符合規定分數的個數
10      float min = MIN;          //分數下限
11      float max = MAX;          //分數上限
12 
13      printf("Enter the first score (q to quit): ");
14      while(scanf("%f",&score)==1)
15      {
16          if(score < MIN || score > MAX)
17          {
18              printf("%0.1f is an invalid value. Try again: ",score);
19              continue;   //跳轉至while循環的測試條件
20              //continue語句讓程序跳過有效輸入部分的代碼。程序開始下一輪循環,準備讀取下一個輸入值。
21          }
22          printf("Accepting %0.1f:\n",score);
23          min = (score < min) ? score : min;
24          max = (score > max) ? score : max;
25          total += score;
26          n++;                  //統計一共輸入了多少分數(計數器)
27          printf("Enter next score (q to quit): ");
28      }
29      if (n > 0)
30      {
31          printf("Average of %d scores is %0.1f.\n", n, total / n);
32          printf("Low = %0.1f, high = %0.1f\n", min, max);
33      }
34      else
35         printf("No valid scores were entered.\n");
36 
37     return 0;
38 }
39 /*
40 輸出樣例
41 
42 Enter the first score (q to quit): 188
43 188.0 is an invalid value. Try again: 90
44 Accepting 90.0:
45 Enter next score (q to quit): 12
46 Accepting 12.0:
47 Enter next score (q to quit): 100
48 Accepting 100.0:
49 Enter next score (q to quit): 85
50 Accepting 85.0:
51 Enter next score (q to quit): q
52 Average of 4 scores is 71.8.
53 Low = 12.0, high = 100.0
54 
55 */

爲什麽第10,11行要這樣設置?

float min = MIN;          //分數下限
float max = MAX;          //分數上限
如果在第10,第11行設置成:
float min = MIN;
float max = MAX;
則會導致地23行的計算會讓min最終計算的值永遠為0,不會在出現比0小的數字(沒有負數分數)。
而float max = MAX 導致的問題是在第24行最終最大分數的計算會一直是100.不會出現比100再大的分數(百分制為例)。
所以min,max的本質含義是min和滿分比較時來鎖定最小值,max和0分比較來鎖定最大值。
const float MIN = 0.0f;   //分數下限是0分
const float MAX = 100.0f; //分數上限是100分
而上方的const變量(MIN,MAX)本質意義是一個宏,是爲了後期方便維護程序,修改數值方便,而不能直接去使用,與min,max是有著不同的意義

标签:skippaart,展現,min,分數,max,float,score,MAX,求值
From: https://www.cnblogs.com/NoldorFromMiddleEarth/p/17029098.html

相关文章

  • 【逆波兰表达式】【栈】LeetCode 150. 逆波兰表达式求值
    题目链接150.逆波兰表达式求值思路从左到右遍历tokens遇到数字便放入栈中,遇到运算符便弹出栈顶的两个数字进行运算。代码classSolution{publicintevalRPN(......
  • Java求值策略
    为什么说Java不存在引用传递?在Java语言中,存在两种数据类型,一种是基本类型,如int、byte等8种基本类型,一种是引用类型,如String、Integer等。这两种数据类型区别就在于,基本类......
  • 力扣150 逆波兰表达式求值
    题目:给你一个字符串数组tokens,表示一个根据 逆波兰表示法表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。注意:有效的算符为'+'、'-'、'*......
  • 150. 逆波兰表达式求值
    150.逆波兰表达式求值难度中等650收藏分享切换为英文接收动态反馈给你一个字符串数组tokens,表示一个根据逆波兰表示法表示的算术表达式。请你计算该表达式。返回一......
  • 【221227-3】求值:4加63开根号除2再开方+4-63开根号除2再开方
    ......
  • 栈实现表达式求值
    使用键盘输入数学表达式(含数字,四种运算符+、-、、/和小括号,其中运算数都是一位数(0~9)),将数学表达式转化成后缀表达式输出,利用后缀表达式求表达式的值并输出。输入格式:输......
  • LINQ延迟求值和主动求值
    在延迟求值的情况下,只是定义了一个查询,而且不是立刻执行。 List<int>list=newList<int>(){0,1,2,3,4,5,6,7,8,9};vartemp1=fromcin......
  • c语言表达式求值和操作符属性
    一、表达式求值表达式求值顺序一部分是由操作符的优先级和结合性决定。同样,有些表达式的操作数在求值的过程中可能需要转化为其他类型1.隐式类型转换表达式中的字符和短整型......
  • C++/MFC 算术表达式求值
    C++/MFC算术表达式求值综合实验1算术表达式求值课程名称:《数据结构与算法(C++描述)》实验名称:综合实验1算术表达式求值实验环境:VisualC++/Dev-C++等支持C++......
  • 栈实现表达式求值
    通过前两天的博客园,可以知道我最近在疯狂补作业,这是我在数据结构实验课遇到的一个题,我通过搜寻相关知识点,理清了后缀表达式的转化过程题目要求:使用键盘输入数学表达式(含......