C primer plus 7.1 if语句

if语句

形式:

if(expression)

statement

if语句被称为分支语句或选择语句,因为他相当于一个交叉点,当expression为真时,执行statement,当expression为假时,跳过statement。

同while一样,statement可以为简单语句或复杂语句。

但与while不同的是,if只能测试或执行一次,而while可以执行多次。当然也可以在while添加if语句来执行多次if测试和判断。

例:7.1

该程序读取一列数据,每个数据都表示每日的最低温度,然后打印总天数和最低气温在0度以下的天数占总天数的百分比。程序中判断通过scanf()读入温度值。while循环每迭代一次,就递增计数器增加天数,其中if语句负责判断0度以下的温度并统计天数。

cpp 复制代码
incude<stdio.h>
int main(void)
{
    conset int FREEZING = 0;
    float temperature;
    int cold_days = 0;
    int all_days = 0;    

    printf("Enter the list of daily low temperatures.\n");
    printf("Use celsius, and enter q to quit.\n");
    while(scanf("%f",&temperature) == 1)
    {
        all_days++;
        if(temperature < FREEZING)
            cold_days++;
    }
    if(all_days != 0)
        printf("%d days total:%.f%% were below freezing.\n",all_days,100.0*(float)cold_days / all_days);
    if(all_days == 0)
        printf("No data entered!\n")

    return 0 ;
}

while循环的测试条件利用了scanf()的返回值来结束循环,因为scanf()在读到非数字时会返回0,就会停止while循环

为避免整数除法,示例中把计算后的百分比强制转换为float类型。其实不必强制转换,C中的自动转换规则,乘积会被强制转换成浮点数。但是使用强制类型转换可以明确表达转换类型的意图,提高可读性。

相关推荐
安全不再安全几秒前
某驱动任意读漏洞分析 - 可用于游戏内存数据读取
c语言·测试工具·安全·游戏·网络安全
willhuo1 分钟前
纯C#实现了RTSP摄像头拉流并转存MP4文件
开发语言·c#·视频编解码
独隅2 分钟前
macOS 查看与安装 Java JDK 全面指南(2026年版)
java·开发语言·macos
独自破碎E6 分钟前
BISHI75 阶幂
android·java·开发语言
卓越软件开发11 分钟前
毕设全栈开发一条龙:Java/SpringBoot/Vue/ 小程序 / Python / 安卓 / AI 图像识别 人脸检测 车牌识别 YOLO
开发语言·spring boot·python·yolo·小程序·毕业设计·课程设计
一叶之秋141215 分钟前
千面之法: 释放 C++ 多态的灵活威力
开发语言·c++
柒.梧.17 分钟前
Java拷贝精讲:彻底分清浅拷贝与深拷贝
java·开发语言·python
一晌小贪欢20 分钟前
PyQt5 实战:批量图片添加水印工具(带右侧实时预览)(附代码及下载链接)
开发语言·qt·添加水印·图片添加水印·蹄片水印
超绝振刀怪22 分钟前
【C++ vector】
开发语言·c++
机器视觉的发动机23 分钟前
图像处理-机器视觉算法中的数学基础
开发语言·人工智能·算法·决策树·机器学习·视觉检测·机器视觉