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是有著不同的意義

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

  1. Windows的免費hMailServer搭配SpamAssassin過濾垃圾郵件:安裝與設定

    http://jdev.tw/blog/1677/hmailserver-with-spamassassin-sawin32 為了解決垃圾信泛濫的狀況,這兩天「跨界」測試了運行在Windows上的免費 ...

  2. Python3 循环_break和continue语句及循环中的else子句

    break和continue语句及循环中的else子句break语句可以跳出for和while的循环体.如果你从for或while循环中终止,任何对应的循环else块将不执行. continue语句被 ...

  3. foreach循環體控制

    通常情況下,在程式中的cursor定義之前,整合了l_sql變量后,轉化sql語句時,通過檢查STATUS的值來判斷sql語句是否有錯誤. 語句如:              if STATUS th ...

  4. iOS跳转到另一个程序

    我这里只是写了部分东西,如果想看更加详细的,请点击原文链接. 原文链接:http://blog.csdn.net/likendsl/article/details/7553605   原则上iOS的沙 ...

  5. 无任何网络提供程序接受指定的网络路径(系统服务里没有workstation服务)

    今天同事访问公司服务器时,提示“无任何网络提供程序接受指定的网络路径”,网络ping正常,把防火墙关掉,再次尝试问题如故. 于是上网搜索: 1.服务停止:一般有workstation,server,c ...

  6. 从“跳一跳”来看微信小程序的未来

    从“跳一跳”来看微信小程序的未来   相信大家这两天都被微信新推出的小程序跳一跳刷爆了朋友圈,为了方便用户在使用过程中切换小程序,微信在这次6.6.1版本中加入了下拉可快速切换小程序的功能,而“跳一跳 ...

  7. vue循環語句

    迭代數組: v-for="site in sites”,sites表示源數組名,site表示數組元素: 迭代對象: v-for=“value in Object”, v-for=" ...

  8. js條件結構和循環結構

    條件結構: if(語句1) if(語句1)else(語句2) if(語句1)elseif(語句2)else(語句3) switch結構: switch() { case 1: break: case ...

  9. 从A小程序跳转到B小程序

    从A小程序跳转到B小程序: A小程序 wxml: <navigator target="miniProgram" open-type="navigate" ...

  10. Java初学者作业——编写Java程序,输入一个学生的5门课程的成绩,求其平均分。

    返回本章节 返回作业目录 需求说明: 编写Java程序,输入一个学生的5门课程的成绩,求其平均分.计算平均成绩,需要将每一门课程的成绩逐步累加到总成绩中,使用 for 循环实现,然后求出平均分. 实现 ...

随机推荐

  1. Tesla-E380,4K eDP一键点屏神器问世

    eDP屏快速点亮,EDID回读, eDP屏调试 是否为点屏的准备工作感到烦躁: 1)查找LCD模组的数据手册(常常还未必能找着) 2)在上位机软件或者单片机程序里设置一大堆的LCD屏参,这个频率,那个 ...

  2. F118校准(二)-- 操作步骤(使用PX01 PG点屏,并使用PX01 PG校准F118)

    1. 准备工作 硬件连接: CA310通过USB线材连接PC PX01通过USB线材连接PC F118通过灰排线连接PX01左上角的GPIO扩展口(如下图所示) LCM连接PX01 启动LcdTool ...

  3. VirtualBox 下 CentOS7 静态 IP 的配置 → 多次踩坑总结,蚌埠住了!

    开心一刻 一个消化不良的病人向医生抱怨:我近来很不正常,吃什么拉什么,吃黄瓜拉黄瓜,吃西瓜拉西瓜,怎样才能恢复正常呢? 医生沉默片刻:那你只能吃屎了 环境准备 VirtualBox 6.1 网络连接方 ...

  4. pinpoint:初始化hbase数据库

    安装完成hbase之后,需要初始化hbase的pinpoint库(创建表). 1. 登录数据库 [root@monitor default]# cd /home/pinpoint/hbase-1.7. ...

  5. Golang 实现时间戳和时间的转化

    何为时间戳: 时间戳是使用数字签名技术产生的数据,签名的对象包括了原始文件信息.签名参数.签名时间等信息.时间戳系统用来产生和管理时间戳,对签名对象进行数字签名产生时间戳,以证明原始文件在签名时间之前 ...

  6. 【第6篇】AI语音测试简介

    1.4 AI语音测试简介 AI语音测试是针对人工智能语音交互的测试,人工智能语音交互一般包含语音识别技术(ASR).自然语言处理技术(NLP)和语音合成技术(TTS)等3大部分,通俗地来讲AI语音测试 ...

  7. FIXMAP内存管理器

    fixed map是被linux kernel用来解决一类问题的机制,这类问题的共同特点是: (1)在很早期的阶段需要进行地址映射,而此时,由于内存管理模块还没有完成初始化,不能动态分配内存,也就是无 ...

  8. 关于咪咕视频的m3u8再次解析

    软件和源码 前言 之前写过一片文章: 关于突破咪咕视频付费限制的研究, 但是后来我发现评论说已经不能用了,我知道肯定是api修改了,写这种东西就是这样,不一定什么时候就变化了,然后就用不了了,我懒得继 ...

  9. SerialException:Cannot configure port something went wrong

    完整报错 SerialException:Cannot configure port something went wrong, Original message: OSError(22, '参数错误 ...

  10. Django基础笔记3(form组件)

    From组件 from django.forms import Form, fields class loginForm(Form): # 设置规则 username = fields.CharFie ...