作者:巨同升
培养学生良好的编程能力是程序设计课程的核心目标[1],而编程能力的培养离不开一个个具体的案例程序。
在教学中选用优质的案例程序,对于培养学生的程序设计能力具有重要的示范引导作用[2][3],因此应该选择更加合理有效的程序实现方法。不过,在当前的C语言程序设计教材中,仍有个别案例程序的写法存在改进优化的空间。
1. 统计单词个数的传统程序
“统计一个字符串中单词的个数(假定单词之间以空格分隔)”是C语言程序设计中的一个经典程序,是字符串处理部分的一个重要案例[4][5]。
下面的程序是在许多C语言教材中采用的一种传统写法。
源程序1:
#include <stdio.h>
#define IN 1 /*表示在一个单词内部*/
#define OUT 0 /*表示在一个单词外部*/
int main(void)
{
char c;
int num,state;
state=OUT; /*初始状态位于单词外部*/
num=0;
while((c=getchar())!='\n')
{
if(c==' ')
state=OUT;
else if(state==OUT)
{
state=IN;
num++;
}
}