现在的位置: 首页 > 新课程 > 正文

循环结构程序设计

2011年07月20日 新课程 ⁄ 共 688字 ⁄ 字号 暂无评论

威力巨大的循环登场啦!

1
2
3
4
【打印华氏温度与摄氏温度对照表】
【文件复制】
【统计字符】
【行计数】

使用公式℃=(5/9)(℉-32)打印下列华氏温度与摄氏温度对照表

1
2
3
4
5
6
7
8
9
10
11
  0  -17.8
 20   -6.7
 40    4.4
 60   15.6
 80   26.7
100   37.8
120   48.9
140   60.0
160   71.1
180   82.2
200   93.3

你应该已经会输出单独的一行。现在要学习的是怎么计算一定范围内的表达式值并输出。

本题中,摄氏温度的变化从 0 ~ 200,每次递增 20

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main()
{
    int f;
 
    f = 0;
    当 f 小于等于 200{
        计算华氏温度 c 并根据要求输出;
         f 递增 20/* 递增就是在原来的基础上增加20 */
    }
    return 0;
}

大括号 { } 中有两个操作,可以把这两个操作看成是一个整体,在C语言中称为复合语句

上面的代码翻译成 C 语言,就是

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
int main()
{
    int f;
 
    f = 0;
    while (f <= 200) {
        printf("%3d %6.1f\n", f, (5.0/9.0)*(f-32));
        f = f + 20;
    }
    return 0;
}

在C语言中,还可以用 for 语句来表示循环。

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int main()
{
    int f;
 
    for (f = 0; f <= 200; f = f + 20) {
        printf("%3d %6.1f\n", f, (5.0/9.0)*(f-32));        
    }
}

for 语句的圆括号中共包含 3 个部分:初始化部分(f = 0)、条件部分( f <= 200)与增加步长部分(f = f + 20),各部分之间用分号隔开。 你可以和 while 进行对比来理解 for 循环。 while 和 for 语句可以相互转换。for 转换为 while 的规则是:

1
2
3
移动初始化部分到 整个 while 语句的前面; 
增加步长部分移到 while 语句执行部分的最后;
for 改为 while,并移除 ()中的分号;

上面的程序功能正确,但不够优雅。

在程序中,如果类似 20 和 200 之类的数字太多,整个程序就不太好理解,也不利于程序的改动。

下面的程序是建议的写法。

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
 
#define LOWER 0
#define UPPER 200
#define STEP 20
 
int main()
{
    int f;
 
    for (f = LOWER; f <= UPPER; f = f + STEP)
        printf("%3d %6.1f\n", f, (5.0/9.0)*(f-32));
}

那为什么 5、9、32 并没有替换呢? 原因很简单:这几个数字是整个公式的一部分,不会变化。

对比一下,温度的上下界和步长却常常会变化的。

【上篇】
【下篇】

抱歉!评论已关闭.