C primer plus 7.1 if语句

打印 上一主题 下一主题

主题 1739|帖子 1739|积分 5217

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
if语句

        情势:

                if(expression)
                    statement
        if语句被称为分支语句或选择语句,因为他相当于一个交织点,当expression为真时,实行statement,当expression为假时,跳过statement。
        同while一样,statement可以为简单语句或复杂语句。
        但与while差别的是,if只能测试或实行一次,而while可以实行多次。当然也可以在while添加if语句来实行多次if测试和判定。
例:7.1

        该程序读取一列数据,每个数据都表示逐日的最低温度,然后打印总天数和最低气温在0度以下的天数占总天数的百分比。程序中判定通过scanf()读入温度值。while循环每迭代一次,就递增计数器增长天数,此中if语句负责判定0度以下的温度并统计天数。
  1. incude<stdio.h>
  2. int main(void)
  3. {
  4.     conset int FREEZING = 0;
  5.     float temperature;
  6.     int cold_days = 0;
  7.     int all_days = 0;   
  8.     printf("Enter the list of daily low temperatures.\n");
  9.     printf("Use celsius, and enter q to quit.\n");
  10.     while(scanf("%f",&temperature) == 1)
  11.     {
  12.         all_days++;
  13.         if(temperature < FREEZING)
  14.             cold_days++;
  15.     }
  16.     if(all_days != 0)
  17.         printf("%d days total:%.f%% were below freezing.\n",all_days,100.0*(float)cold_days / all_days);
  18.     if(all_days == 0)
  19.         printf("No data entered!\n")
  20.     return 0 ;
  21. }
复制代码
        while循环的测试条件利用了scanf()的返回值来竣事循环,因为scanf()在读到非数字时会返回0,就会停止while循环
        为避免整数除法,示例中把盘算后的百分比欺压转换为float范例。其实不必欺压转换,C中的主动转换规则,乘积会被欺压转换成浮点数。但是使用欺压范例转换可以明白表达转换范例的意图,提高可读性。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连密封材料

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表