一、思维导图
二、语法认识
1.if-else
if (表达式) { 语句1; }else { 语句2; }
else匹配最近的if(没有相应的else匹配的),else后无需再编辑条件
2.switch
switch(表达式) { case 常量表达式1: 语句1; break; ...... case 常量表达式n; 语句n; break; default: 语句n+1; break; }
1.在case后的各常量表达式的值不能相同,否则会出现错误。
2.在case后,允许有多个语句,可以不用{}括起来。
3.各case和default子句的先后顺序可以变动,而不影响程序的执行结果‘
4.default子句可以省略不用
5.switch语句中的break语句并不是每个case语句后都必须有
3.for
for(表达式1;循环条件;表达式2) { 循环语句; }
for括号中的两个分号注意不要用成逗号.
先执行表达式1,对循环变量赋值,再判断循环条件,若为“真”则执行循环语句,接着执行表达式2
4.while
while(循环条件) { 循环体语句 }
while语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真即可继续循环
5.do-while
do
{ 循环体语句 }while(循环条件);
相比while循环先不判断循环条件循环一次
6.break和continue语句
break语句可以用于do-while、for、while循环语句中时可以终止循环而执行循环后面的语句
注意:1.break语句对if-else语句不起作用 2.在多层循环中,一个break语句只向外跳一层
continue语句
其作用是跳过循环本中剩余的语句而强行执行下一次循环.只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环
三. pta分数截图
四. pta代码分析
#include <stdio.h> int main() { int number, temp, i = 0, sum = 0; scanf("%d", &number); temp = number; while (temp) { sum += temp % 10; temp /= 10; i++; } printf("%d %d ", i, sum); return 0; }
代码思路:用while循环实现在temp为0时结束循环,通过取余和temp对10的整除得到各位数数字之和及位数。
#include<stdio.h> int main(){ int n,i,l,min; scanf("%d",&n); scanf("%d",&l); min=l; for(i=1;i<n;i++){ scanf("%d",&l); if(min>l) min=l; } printf("min = %d",min); return 0; }
代码思路:先读取确定一个最小值,通过for循环读取剩余的数,每读取一个数便用if将较小值赋予min。
#include<stdio.h> int main() { int a,b,i,m,l=0,sum=0,num=0; scanf("%d %d",&a,&b); for(i=a;i<=b;i++) {for(m=1;m<=i;m++) { if(i%m!=0) l++; } if(l==i-2) { sum=sum+i; num++; } l=0; } printf("%d %d",num,sum); return 0; }
代码思路:通过for循环判断所有M.N间的数,用if判断该数不能被几个数整除,若l等于该数-2则证明其为素数