C语言程序设计-6循环与7数组
复习:复杂逻辑条件的表述判断某一年year是否为闰年 循 环 使一系列语句重复执行指定的次数,或重复执行它们,直到满足某个条件为止的编程机制称为循环。 。 语句块的执行次数可以简单地用一个计数器来控制,语句块重复执行指定的次数 或者还可以更复杂一些,重复执行一个语句块,直到满足某个条件为止 循环和比较数据项是基本的编程工具 能比较数据值和重复执行语句块后,就可以合并这两个功能,控制语句块的执行次数。 例如,重复执行一个操作,直到比较的两个数据项相同为止。当它们相同时,执行另一个操作 。 递增运算符 递增运算符,形式是++,给所操作的变量加l。例如,假如变量的类型是int, 下面的3条语句有相同的结果: count = count + 1; count += 1; ++count; 递增运算符的前置和后置形式 递减运算符 递减运算符的操作和递增运算符完全相同。它的形式是– – ,作用是给它操作的变量减1。使用方式和++完全相同。 例如,假设变量count是int类型, 下面3条语句会有相同的结果: count = count - 1; count -= 1; --count; 例7.7 输出一个钻石图形 #include void main() { char diamond[][5]={{′ ′,′ ′,′*′},{′′,′*′,′ ′,′*′},{′*′,′ ′,′ ′,′ ′,′*′},{′ ′,′*′,′ ′,′*′},{′ ′,′ ′,′*′}}; int i,j; for (i=0;i<5;i++) { for (j=0;j<5;j++) printf(″%c″,diamond[i][j]); printf(″\n″); } } 运行结果 * * * * * * * * § 7.3.3字符数组的引用 § 7.3.4字符串和字符串结束标志 为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符′\0′作为标志。如果有一个字符串,前面9个字符都不是空字符(即′\0′) ,而第10个字符是′\0′,则此字符串的有效字符为9个。系统对字符串常量也自动加一个′\0′作为结束符。 ′\0′代表ASCII码为0的字符,从ASCII码表中可以查到,ASCII码为0的字符不是一个可以显示的字符,而是一个“空操作符”,即它什么也不干。用它来作为字符串结束标志不会产生附加的操作或增加有效字符,只起一个供辨别的标志。 可以用字符串常量来使字符数组初始化。 例如 char c[]={″I am happy″}; 也可以省略花括弧,直接写成 char c[]=“I am happy″; 它与下面的数组初始化等价 char c[] ={′I′,′ ′,′a′,′m′,′ ′,′h′,′a′,′p′,′p′,′y′,′\0′} 注意 再比如 char c[10]={"China″}; 数组c的前5个元素为′C′,′h′,′i′,′n′, ′a′,第6个元素为′\0′,后4个元素也设定为空字符。 § 7.3.4字符串和字符串结束标志 需要说明的是:字符数组并不要求它的最后一个字符为′\0′,甚至可以不包含′\0′。 例如:char c[5]={′C′,′h′,′i′,′n′,′a′};这样写完全是合法的。但是由于系统对字符串常量自动加一个′\0′。因此,人们为了使处理方法一致,在字符数组中也常人为地加上一个′\0′。如:char c[6]={′C′,′h′,′i′,′n′,′a′,′\0′};这样做,这样做是为了便于引用字符数组中的字符串。 定义了以下的字符数组∶ char c[]={”Pascal program”}; 现在,想用一个新的字符串代替原有的字符串”Pascal program” ,从键盘向字符数组输入∶Hello 如果不加′\0′的话,字符数组中的字符如下∶ Hellol program 例如 §7-3 字符数组 § 7.3.5字符数组的输入输出 字符数组的输入输出可以有两种方法: 逐个字符输入输出。用格式符“%c”输入或输出一个字符。 将整个字符串一次输入或输出。用“%s”格式符,意思是对字符串的输入输出。 char c[]={″China″}; printf(″%s″,c); 例如 在内存中数组c的状态 2、一维数组元素引用的程序实例 #include void main( ) { int i,a[10]; for (i=0; i<=9;i++) a[i]=i; for(i=9;i>=0; i--) printf("%d ″,a[i]