知识总结

知识总结

一.思维导图


二.if-else;switch;for;while;do-while;

break;continue;

  1. if(条件){
         语句;
    
     } 
     else{
    
        语句;
    
    }    
    

​ 常见问题*:1. “{}”的书写不完整。2. 对于else附属于哪个if

  1. switch(表达式)  {
    
       case 常量表达式1:语句段1;break;
    
                   …
    
       case 常量表达式n:语句段n;break;
    
       default: 语句段n+1; break;
       }
    
    

    用法: 1.在不同的常量表达式中,有对应执行的表达式;判断条件后,执行对应的表达式

  2. for(条件){
        语句;
    }
    
    

    用法:条件为三个表达式--for(表达式1;表达式2;表达式3):表达式1通常提供一个初始量;表达式2控制循环次数;表达式3对于初始量进行变化。常见问题:对于循环次数的控制

  3. do{
    
       循环体语句;
    
    }while(表达式);
    
    while(条件){
              循环体语句;
    }
    
        while用法:1. 当while(**表达式!=0**)执行循环体语句;反之跳出循环体语句。2. 常见问题:忽略是否至少执行一次循环,与do while 弄混。3.  解决方法:思考特殊情况,即当初始量不满足时,是否符合要求   
        do- while用法:2. 先循环一次,再判断while中的表达式是否非0,非0则继续执行循环体,为0则跳出循环。2. 常见问题:不能很好区分于while的用法。3. 解决方法:刷题。
    
  4. break与continue:1.用法:break用于跳出循环;continue用于跳过continue之后的语句,进行下一次循环。2. 常见问题:不能灵活应用break和continue。

三. pta分数

2.3与2.4
3章
4章

四.pta分析(解题思路都在注释中)

   #include "stdio.h"
   
   int main() {
       int n,i,minimum,a=0;
       minimum=a;//首先设a为最小值
       scanf("%d",&n);
       scanf("%d",&a);//输入第一个整数
       for (i=1;i<n;i++){
           scanf("%d",&a);//当n>1,再输入n-1个数
           if(minimum>a){
               minimum=a;
           }//将输入的数与a对比,将较小值赋值给minimum
       }
       if(n==1){
               minimum=a;
       }//只有一个数时,即本身为最小值
    
       printf("minimum = %d",minimum);
    return 0;
   }
   

感悟:1. 可以巧妙地运用赋值,可以省去对多余变量的定义。2. 可以利用循环控制输入次数

2.

   #include "stdio.h"
   
   int main() {
       int anyyear,count=0;
       scanf("%d",&anyyear);
       if(anyyear>2100||anyyear<=2000){
           printf("Invalid year!");
   
       }//令anyyear为月份上限,看输入的月份是否为非法月份
       else{for(int year=2001;year<=anyyear;year++){
               if((year%4==0&&year%100!=0)||year%400==0){
                   printf("%d
",year);
                   count++;
            }    }
       }//对于取值范围内的月份判断是否为闰年,是则输出
       if(count==0){
           printf("None
");
       }//若不存在,则按题目要求输出
       }
       return 0;
   }
   

感悟:应该注意审题,注意数据范围及相关条件

3.

#include "stdio.h"

int main() {
    int letter=0,blank=0,digit=0,other=0;
    char ch;//对变量进行定义

    for(int i=1;i<=10;i++) {
    ch=getchar();//每次读入一个字符
    if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){
        letter++;
    }//判断是否在英文字母范围
    else if(ch>='0'&&ch<='9'){
        digit++;
    }//判断是否在数字字符范围
    else if(ch==' '||ch=='
'){
        blank++;
    }//判断是否为空格键或回车键
    else {
        other++;
    }//其余字符
    }
    printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);
    return 0;
}

感悟:对于getchar的运用

原文地址:https://www.cnblogs.com/tylk/p/11663805.html