上一页 下一个

C语言编程基础

循环:一个真实的例子

假设您想要创建一个程序来打印Fahrenheit-to-Celsius转换表格这很容易用for循环或while循环完成:

#include  int main() {int a;A = 0;while (a <= 100) {printf("%4d°F = %4d°C\n", a, (a - 32) * 5乐动体育网站5.0 / 9);A = A + 10;}返回0;}

如果你运行这个程序,它将生成一个从0°F开始到100°F结束的值表。输出如下:

广告

0度F = -17度C 10度F = -12度C 20度F = -6度C 30度F = -1度C 40度F = 4度C 50度F = 10度C 60度F = 15度C 70度F = 21度C 80度F = 26度C 90度F = 32度C 100度F = 37度C

该表的值以10度为增量。您可以看到,您可以轻松地更改程序生成的表的开始值、结束值或增量值。

如果您希望您的值更准确,您可以使用浮点值:

#include  int main() {float a;A = 0;while (a <= 100) {printf("%6.2f°F = %6.2f°C\n", a, (a - 32.0) *乐动体育网站5.0 5.0 / 9.0);A = A + 10;}返回0;}

你可以看到for的声明一个已更改为浮点数,而乐动体育网站5.0% f符号替换% dprintf语句中的符号。此外,%f符号还应用了一些格式:该值将在小数点前显示6位数字,小数点后显示2位数字。

现在,假设我们想要修改程序,以便将98.6的温度插入到表中适当的位置。也就是说,我们希望表格每增加10度,但我们也希望表格包含98.6华氏度的额外一行,因为这是人类的正常体温。以下程序实现了这一目标:

#include  int main() {float a;A = 0;while (a <= 100) {if (a > 98.6) {printf("%6.2f度F = %6.2f度C\n", 98.6, (98.6 - 32.0) * 5.0 / 9.0);} printf("%6.2f°F = %6.2f°C\n", a, (a - 32.0) 乐动体育网站5.0* 5.0 / 9.0);A = A + 10;}返回0;}

如果结束值为100,则此程序可以工作,但如果将结束值更改为200,则会发现程序有一个错误.它打印了98.6度的线太多次了。我们可以用几种不同的方法来解决这个问题。这里有一种方法:

#include  int main() {float a, b;A = 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.2f°F = %6.2f°C\n", a, (a - 32.0) 乐动体育网站5.0* 5.0 / 9.0);B = a;A = A + 10;}返回0;}

C应避免的错误

  • 在if或while语句中,当你想要==时使用=
  • 忘记在while循环中增加计数器——如果忘记增加计数器,就会得到一个无限循环(循环永远不会结束)。
  • 不小心放了个;在for循环或if语句的末尾,这样语句就没有效果-例如:for (x=1;x < 10;x + +);printf (" % d \ n”,x);只打印一个值,因为for语句后的分号作为for循环执行的一行。
特色