第一次博客园作业

一.思维导图

 二.自己对语法的认识

1.if-else

  

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

用法:先判断表达式,成立执行语句a,不成立执行语句b,多重表达式可用if(表达式1),else if(表达式2),else表达

注意问题:else不跟表达式 ,注意else与if的匹配,注意{}的位置。

 2.switch

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

用法:switch-case语句适用于分支条件多的情况,先判断表达式,之后与相应的常量表达式对应,执行语句段,需要用break跳出循环

问题:case表达常亮错误 

解决问题:编译器检查,修改

注意问题:break的使用,以及default的使用。注意case(常量表达式)后使用符号为:语句段与break后使用符号为;

3.for

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

用法:先执行表达式1 ,判断表达式2,若成立,执行循环语句,再执行表达式3,判断表达式2,执行循环语句,直到表达式2不成立

问题:表达式3与表达式2不对应

解决问题:修改表达式2和3,使之对应

注意问题:判断清楚表达式2是否符合题目要求,判断好什么时候结束,以及表达式123之间用;隔开,不随意添加;

4.while

 

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

 用法:先判断表达式,若成立,执行循环语句,再判断表达式执行循环语句,直到表达式不成立;

5.do while

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

用法:直接进入循环,判断表达式,表达式为真则继续循环,直到表达式为假跳出循环

注意问题:直接进入循环语句,再判断表达式,注意while(表达式)后面使用;结束

6.break和continue

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

for(表达式1;表达式2;表达式3;){
    语句1;
     continue
     语句2;
}

注意问题:break语句使循环强制结束,continue语句跳过循环体语句中continue后面的语句,继续循环。break还可用于switch语句。 

三.PTA分数截图

2.3 ,2.4作业


第三章

 

4.1作业

四. pta代码分析

2.3,2.4作业

#include <stdio.h>

int main()
{
    int N,i,flag,d;//定义一个正整数N,i用于for循环,flag用于项的正负
    double item,sum;定义双精度浮点数
    sum=0;
    flag=+1;//另flag初始值为+1为项的正负做准备
    d=1;
    scanf("%d",&N);//输入正整数N
    
    for(i=1;i<=N;i++){
        item=1.0/d*flag;//item用于存放每一项的值
        sum=sum+item;//sum用于求和
        d=d+3;
        flag=-flag;//使flag值为-1使偶数项为负数 
        
    }

    printf("sum = %.3lf",sum);//输出sumde值,精确到小数点后三位

    return 0;
}

注:解题思路在注释中表明。

错误点:偶数项忘记考虑正负号,结果忘记精确到小数点后三位

收获:如何使用for循环求N项求和,item用于存储各项的值,各项正负号的使用

第三章作业

#include<stdio.h>
int main()
{
    int i,a,b;
    int A,B,C,D,E;
    A=B=C=D=E=0;//ABCDE用于计算各个等级的数量
    scanf("%d",&a);//输入统计成绩学生的个数
    for(i=1;i<=a;i++){  //循环a次
        scanf("%d",&b);
        //以下用if-else语句来统计各个等级的数量
        if(b>=90)
        A++;
        else if(b>=80)
        B++;
        else if(b>=70)
        C++;
        else if(b>=60)
        D++;
        else 
        E++;
    }
    printf("%d %d %d %d %d",A,B,C,D,E);//输出各个等级的数量


    return 0;
}

注:解题思路在注释中表明。

错误点:ABCDE忘记定义为0,导致程序无法运行

收获:学会了用for循环中嵌套使用if-else从句,学会了scanf写入循环语句中输入多个值的方法

 4.1作业

 

#include<stdio.h>
int main()
{
    int n,count=0,s=0,c=0;//定义正确的整型变量
    scanf("%d",&n);//输入正整数n
    do{
        c=n%10;//c用来得到整数n的最后一位数字
        s=s+c;//s用来计算n每位数字c的和
        n=n/10;//使n去除最后一位数字
        
        count++;//count用来计算n的位数
    }while(n!=0);//结束循环,n是几位数就循环几次
    printf("%d %d",count,s);//输出n的位数和各个数字之和

    return 0;
}

 注:解题思路在注释中表明

错误点:while后面忘记加;用来结束循环,忘记定义count初始值为0用来统计次数

收获:更加清楚明白%与/的区别,更清楚do-while语句的使用

原文地址:https://www.cnblogs.com/ssp1781554770/p/11679524.html