第十组 chap3学习总结
一,学习内容梳理
1,C语言分支结构
1,switch case语句
switch的一般形式如下:
switch (表达式) { case 常量表达式1: 语句1 case 常量表达式2: 语句2 ┇ case 常量表达式n: 语句n default: 语句n+1 }
PS:1) switch 后面括号内的“表达式”必须是整数类型。
2) switch 下的 case 和 default 必须用一对大括号{}
括起来。
3)default 后面可以什么都不写,但是后面的冒号和分号千万不能省略,省略了就是语法错误。
2,if else语句
a,if的一般形式如下:
if(表达式) 执行语句 或 if(表达式){ 执行语句1 执行语句2 ... 执行语句n }
if:判断表达式内容,如果为true(真),就执行语句。
b,else if的一般形式如下:
if(表达式) 执行语句 else if(表达式1) 执行语句1 ......(很多的else if) else if(表达式n) 执行语句n
else if:如果if的判断没有通过,则进行下面的else if,如果当前的else if判断通过,则执行当前else if的语句。
如果没通过,则一直执行下面的else if判断。
c,else的一般形式如下:
if(表达式) 执行语句 else if(表达式) 执行语句 else 执行语句
else:else为最后的分支,如果在else之前的if、else if判断都没有通过就会执行else。
PS:在一条if条件判断中,可以有无数条else if,但是只能有一个else。
2,C语言循环结构
1,while语句
while语句的一般形式如下:
while(表达式) { 循环语句1; 循环语句2; … 循环语句N; }
PS:while语句先判断再执行语句,do while语句则先执行一次语句再判断。
2,do while语句
do while语句的一般形式如下:
do {
循环语句1;
循环语句2;
…
循环语句N;
}while(条件语句);
PS:“while(条件语句)”后面的';'千万不能漏掉噢。
3,for语句
for的一般形式如下:
for(循环变量赋初值;循环条件判断;循环变量值变化) { 语句1; 语句2; 语句3; …………; }
二,PTA做题时出现的问题及解决过程
1,出现的问题
1,格式错误
例:计算表达式 1 + 2 + 3 + ... + 100 的值
#include <stdio.h> int main() { int a; int s = 0; 正确写法:for(a=1;a<=100;a++) 错误写法:for(a=1,a<=100,a++) { s += a; } printf("sum = %d",s); return 0; }
解决过程:根据编译器提供的信息,找到错误并修改。
PS:循环变量赋初值,循环条件判断,循环变量值变化之间要用 ;隔开!!!
2,多个循环错误嵌套
例:计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和
方法之一:
#include <stdio.h> int main() { double a,N; double S = 0; scanf("%lf",&N); 错误写法:for(a=1;a<=N*3;a+=6) { S += pow(a,-1); for(a=4;a<=N*3;a+=6) { S -= pow (a,-1); } } 正确写法: for(a=1;a<=N*3;a+=6) { S += pow(a,-1); } for(a=4;a<=N*3;a+=6) { S -= pow (a,-1); } printf("sum = %.3f",S); return 0 ; }
思路:先将所有正项加起来,再将所有负项加起来。
错误解决过程:首先取N为一较小的数,人工计算S的值,再通过调试,发现S值的异常,找到问题所在,发现循环错误嵌套,最后将两个循环分离从而解决问题。
2,未解决的问题
1,多重嵌套循环难以理解,无法合理设置内外循环
例:用嵌套循环寻找水仙花数。
三,结语
学习C语言不要心急,要循序渐进,须知欲速则不达的道理。千万不要盲目的写大量的代码,这样做只会堆出大量的低档次代码,同时使你形成不好的代码习惯。
可以多看看翁恺老师等的教学视频,多向他人请教从而不断进步。
最后,祝我们都有一个美好的未来!