第一次博客园作业

一,制作思维导图


二,写出自己对一下语法的认识

1,if-else

 

if(表达式1){
语句a
}else{
语句b
}

 

else总是与最近的if配对,注意表达式1中无;若{}里面只有一句表达式可以省略{}

2,switch

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

switch语句中,表达式和常量表达式的值一般是整型或字符型,所有常量表达式的值都不能相等,每个语句段可以为一条或多条语句或空语句,default可以省略,使用于多分支选择问题,最后应有break跳出语句。

3,for

for(表达式1;表达式2;表达式3){
循环体语句;
}

for语句中()中的表达式要用;分隔开,for的后面没有分号,若{}里面只有一句表达式可以省略{}

4,while

while(表达式){
循环体语句;
}

while语句与for语句相比,适用面更广,当表达式为"真"时,循环执行,直到表达式为假时,循环终止继续执行while语句的下一条语句。

5,do-while

do{
     循环体语句;
}while(表达式);

do-while语句先执行循环体后判断循环条件,与另外两种循环语句相比,至少会执行一次循环体,当表达式为真时,循环执行,表达式为假时,循环终止,继续执行while语句的下一条语句。适用于先执行一次循环的的条件。

6,break以及continue

break语句强制循环结束,一旦执行break语句,循环提前结束,不再执行循环体中位于其后的其他语句,跳出循环。

continue语句跳过循环体中continue语句后面的语句,继续下一次循环。

两者区别在于,break结束循环,而continue只是跳过后面语句继续循环。break语句还可以运用于switch语句,continue语句只能用于循环。

三,pta分数截图

 

 

四,pta代码分析

   

#include<stdio.h>
#include<math.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++)/给定素数的范围在a,b之间/
        {for(m=1;m<=i;m++)
          {
           if(i%m!=0) 
l++; } if(l==i-2) /l如果等于i-2那l对应的数就为素数/ { sum=sum+i; num++; } l=0;/让l归零从新进行循环/ } printf("%d %d",num,sum); return 0; }

代码错误:没有理解素数的定义,判断素数的方法过于复杂。

获得经验:代码与数学知识结合,对嵌套循环的使用更熟练了。

   

#include<stdio.h>
int main()
{
    int a,n,i=0,b;
    scanf("%d %d",&a,&n);
    while(i<=n)/i为游戏进行的次数,当次数大于规定次数游戏结束/{
        scanf("%d",&b);
        i++;
        if(b<0){
            printf("Game Over\n");
            break;
        }
        if(b==a)/当猜中的时候应该看成一种情况,再分支去讨论/{
            if(i==1){
                printf("Bingo!\n");
                break;
            }else if(i<=3){
                printf("Lucky You!\n");
                break;
            }else if(i<=n){
                printf("Good Guess!\n");
                break;
            }else{
                printf("Game Over\n");
                break;
            }
        }else if(b>a)/没有猜中时不需要跳出循环/{
            printf("Too big\n");
            
        }else if(b<a)/没有猜中时不需要跳出循环/{
            printf("Too small\n");
            
        }
        
    }
   
    return 0;
}

易错点:容易写不出来当次数超过规定次数时要怎么跳出循环,不容易写出当猜到时应继续if-else语句讨论。

获得经验:对复杂的分支语句有了一定的了解,在以后写相似题目会有一定的思路借鉴。

  

#include<stdio.h>
int main()
{
    int a,b,i;
    scanf("%d",&a);
    if(a<=2000||a>2100){
        printf("Invalid year!\n");
    }else{
        int c=0;/定义c为零为后面判断不存在闰年做条件/
        for(i=2001;i<=a;i++){
            if((i%4==0&&i%100!=0)||i%400==0){
                printf("%d\n",i);
                c++;
            }
           
            } if(c==0){
                printf("None\n");
        }
    }
    return 0;
} 

易错点:判断非闰年时一开始没有用到c=0这个条件来判断,导致不懂判断不存在闰年时要怎么做。

获得经验:写代码要懂得变通,多看书上例题学习比较简便得到方法。

 

posted @ 2019-10-14 12:32  脸盲患者(钟恒)  阅读(167)  评论(0编辑  收藏  举报