C Primer Plus 第7章 C控制语句:分支和跳转 7.1 if语句

这个程序读入一系列每日的最低温度(摄氏度),并报告输入的总数,以及最低温度在零度以下的天数的百分率。在一个循环里使用scanf()读入数值,在每一次循环中增加计数器的值来统计输入数值的个数。if语句检测低于零度以下的温度并单独统计这些天的数目。

程序清单7.1  colddays.c

------------------------------------

//colddays.c --求出温度低于零度的天数的百分率
#include <stdio.h>
int main (void)
{
    const 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:%.1f%% were below freezing.\n",
                all_days,100.0*(float)cold_days / all_days);
    if(all_days==0)
        printf("No data entered!\n");
    return 0;
}
/*下面是一个运行示例:
Enter the list of daily low temperatures.
Use Celsius,and enter q to quit.
12 5 -2.5 0 6 8 -3 -10 5 10 q
10 days total:30.0% were below freezing.
*/

用float而不是int来声明temperature,这样程序就既能接受像8那样的输入,也能接受像-2.5这样的输入。

为了避免整数除法,示例程序在计算百分率时使用了类型转换float。使用类型转换可以表明意图,并保护程序免受不完善编译器的影响。

if语句被称为分支语句(branching statement)或选择语句(selection statement),因为它提供了一个交汇点,在此处程序选择两条分支中的一条前进。一般形式如下:

if(expression)

        statement

如果expression为真,就执行statement;否则跳过该语句。和while语句的区别在于在if中,判断和执行只有一次,而在while循环中,判断和执行可以重复多次。

注意,即使if中使用了一个复合语句,整个if结构仍将被看作一个简单的语句。

转载于:https://my.oschina.net/idreamo/blog/690203

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值