循环:一个真实的例子
假设您希望创建一个程序,打印Fahrenheit-to-Celsius转换表。这很容易通过for循环或while循环:
# include < stdio。h > int main () {int;= 0;而(< = 100){printf (" % 4 d度= % 4 d度\ n”, a, (a - 32) * 5/9);= + 10;}返回0;}
如果你运行这个程序,它会产生一个表的值从0度开始和结束在华氏100度的输出将是这样的:
广告
0度= -17度10度= -12度20华氏度= 6摄氏度30度= 1度40华氏度= 4摄氏度50华氏度= 10摄氏度60度= 15度70度F = 21摄氏度80度F = 26摄氏度90度F = 32摄氏度100度F = 37摄氏度
表的值是10度的增量。你可以看到,你可以很容易地改变开始,结束或增量值表的程序。
如果你想让你的价值观更准确,你可以使用浮点值:
# include < stdio。h > int main(){浮动;= 0;而(< = 100){printf(" % 6.2度F = % 6.2摄氏度\ n”, a, (- 32.0) * 5.0/9.0);= + 10;}返回0;}
你可以看到申报一个已经更改为一个浮点数,% f符号替换% dprintf语句中象征。此外,% f象征有一些格式应用:将打印的值小数点前6位数字和小数点后两位数字。
现在,假设我们想要修改程序,温度98.6表中插入适当的位置。我们希望表增量每10度,但是我们也希望表包括一个额外的线为98.6华氏度,因为一个人的正常体温。下面的程序实现目标:
# include < stdio。h > int main(){浮动;= 0;时(< = 100){如果(> 98.6){printf(" % 6.2度F = % 6.2度C \ n ", 98.6, (98.6 - 32.0) * 5.0/9.0);}printf(" % 6.2度F = % 6.2摄氏度\ n”, a, (- 32.0) * 5.0/9.0);= + 10;}返回0;}
这个项目工作如果结束值是100,但如果你结束值更改为200年你会发现程序有一个错误。它打印多次为98.6度。我们可以在几个不同的方式解决这个问题。这是一种方法:
# include < stdio。h > int main(){浮动a、b;= 0;b = 1;虽然(< = 100){如果((> 98.6)& & (b < 98.6)) {printf(" % 6.2度F = % 6.2度C \ n ", 98.6, (98.6 - 32.0) * 5.0/9.0);}printf(" % 6.2度F = % 6.2摄氏度\ n”, a, (- 32.0) * 5.0/9.0);b =一个;= + 10;}返回0;}
C以避免错误
- 把=当你的意思= = if或声明
- 忘记在while循环递增计数器,——如果你忘记递增计数器,你得到一个无限循环(循环永远不会结束)。
- 不小心把一个;最后一个for循环或if语句的语句没有影响——例如:为(x = 1;x < 10;x + +);printf (" % d \ n”, x);只打印出一个价值因为分号后的语句作为一个for循环执行。