清华大学出版社 TSINGHUA UNIVERSITY PRESS (9)对应该有花括弧的复合语句,忘记加花括弧。 如: sum=0 while(i<=100) sum=sum+i: i++; 本意是实现1+2+…+100,即>i。但上面的语句只 是重复了sum+1的操作,而且循环永不终止。因为 i的值始终没有改变。错误在于没有写成复合语句 形式。因此whle语句的范围到其后第一个分号为 止。语句“计+;”不属于循环体范围之内。应改
• (9) 对应该有花括弧的复合语句,忘记加花括弧。 • 如: sum=0; i=1; while(i<=100) sum=sum+i; i++; • 本意是实现1+2+…+100,即∑i。但上面的语句只 是重复了sum+1的操作,而且循环永不终止。因为 i的值始终没有改变。错误在于没有写成复合语句 形式。因此while语句的范围到其后第一个分号为 止。语句“i++;”不属于循环体范围之内。应改 100 i=0
清华大学出版社 TSINGHUA UNIVERSITY PRESS 为 while(i<=100 Isum=sum+i: i++; 10)括弧不配对。 当一个语句中使用多层括弧时常出现这类错 误,纯属粗心所致。如: while(c= getchar() putchar(c); 少了一个右括弧
为 while(i<=100) {sum=sum+i; i++; } • (10) 括弧不配对。 • 当一个语句中使用多层括弧时常出现这类错 误,纯属粗心所致。如:while((c=getchar( )! ='#') • putchar(c); • 少了一个右括弧
清华大学出版社 TSINGHUA UNIVERSITY PRESS ·(11)在用标识符时,忘记了大写字母和小写字母 的区别。 例如: main fint a, b, cs a=2;b=3; C=A+B printf(od+%d=%",A, B, C); ·编译时出错。编译程序把a和A认作是两个不同的 变量名处理,同样b和B,c和C都分别代表两个不 同的变量
• (11) 在用标识符时,忘记了大写字母和小写字母 的区别。 • 例如: main( ) {int a,b,c; a=2;b=3; C=A+B; printf("%d+%d=%",A,B,C); } • 编译时出错。编译程序把a和A认作是两个不同的 变量名处理,同样b和B,c和C都分别代表两个不 同的变量
清华大学出版社 TSINGHUA UNIVERSITY PRESS ·(12)引用数组元素时误用了圆括弧。 如: main( Mint i, a(10) for(i=0;i<10;计+) scanf("%d",&a(〕); C语言中对数组的定义或引用数组元素时必须用 方括弧。 (13)在定义数组时,将定义的“元素个数”误认 为是“可使用的最大下标值
• (12) 引用数组元素时误用了圆括弧。 • 如: main( ) {int i,a(10); for(i=0;i<10;i++) scanf("%d",&a(i)); } • C语言中对数组的定义或引用数组元素时必须用 方括弧。 • (13) 在定义数组时,将定义的“元素个数”误认 为是“可使用的最大下标值
清华大学出版社 TSINGHUA UNIVERSITY PRESS main( inta10={1,2,3,4,5,6,7,8,9, 10 int i: for(i=1;i<=10;i++) printf(ood",ali; 想输出a[到a[10。但一些初学者常犯的错误。C 语言规定定义时用a[10,表示a数组有10个元素 而不是可以用的最大下标值为10。数组只包括a|0 到a9]10个元素,因此用a10就超出a数组的范围
main( ) {int a[10]={1,2,3,4,5,6,7,8,9, 10}; int i; for(i=1;i<=10;i++) printf("%d",a[i]); } • 想输出a[1]到a[10]。但一些初学者常犯的错误。C 语言规定定义时用a[10],表示a数组有10个元素, 而不是可以用的最大下标值为10。数组只包括a[0] 到a[9]10个元素,因此用a[10]就超出a数组的范围 了