乙yonyon

导航

博客园作业

一,思维导图

二,对语法的认识

if-else语句

一般形式为:

if(表达式)
{
    语句1;
}else{
    语句2;
}

用于实现分支结构,根据表达式的值选择语句1或语句2中的一条执行。
if语句嵌套时,要注意if和else的配对问题。else总是与它前面最近的if配对。
注:在if语句中,判断条件必须用“{}”括起来。

switch语句

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

在switch语句中,表达式和常量表达式的值一般是整形或字符型
注:在case后的个常量表达式值不能相同,否则会出现错误;在case后允许有多个语句,可以不用“{}”括起来;default可以省略不用。
遇到的问题:在表达式后面错加分号

for语句

一般形式为:

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

for语句中,用两个分号分隔三个表达式,但for的后面没有分号,因为for与其后的循环体语句合起来作为一个完整的语句。

while语句

一般形式为:

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

while语句中的表达式可以是任意合法的表达式,循环体语句只能是一条语句

do-while语句

一般表达式为:

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

do-while语句先执行循环体,后判断循环条件。无论循环条件值如何,至少会循环一次循环体。
遇到的问题:把条件中的赋值和等号弄混。

break及continue

break语句 强制循环结束,break语句和if语句配合使用,即条件满足时,才会执行break跳出循环
continue语句 的作用是跳出循环体中continue后面的语句,继续下一次的循环。
区别:break除了可以终止循环外,还用于switch语句,而continue只能用于循环。

三,PTA截图分析



四,PTA代码分析


代码如下:

#include<stdio.h>
int main()
{
    int num, sum = 0;
    for(int i = 1;;i++){
        scanf("%d", &num);
        if(a<=0) break;
        else if(num%2!=0)
        {
            sum+=num;
        }
    }
    printf("%d",sum);
    return 0;
}

代码思路:先理解什么是奇数;定义变量,给sum初始值,使用循环语句,如果是奇数,则加起来。
问题:把奇数和偶数概念混淆;在for语句的表达式后面加分号。
解决办法:正确理解奇数和偶数,不能在for语句的表达式后面加分号。

题目2

代码如下

#include<stdio.h>


int main(void)
{
        int n;
        double i=1;
        double s=0;
        scanf("%d",&n);
        for(;n>0;n--)
        {
                s+=1/i;
                i+=2;
        }
        printf("sum = %.6lf",s);
        return 0;
}

代码思路:定义一个变量n,用for循环,在for循环中从左到右的形式循环,并且语句一只循环一次,若满足条件,则加起来,最后输出加起来的值。
问题:在printf中用来%.6d
解决方法:如果前面是int类型,后面printf和scanf里要用%d;如果前面是double型的,后面printf和sacan利用%lf.
题目3

代码如下

# include <stdio.h>
int main(void) {
    int a, b;
    char operate;
    scanf("%d %c %d", &a, &operate, &b);
    switch (operate) {
        case '+' :
            printf("%d", a+b); break;
        case '-' :
            printf("%d", a-b); break;
        case '*' :
            printf("%d", a*b); break;
        case '/':
            printf("%d", a/b); break;
        case '%':
            printf("%d", a%b); break;
        default :
            printf("ERROR");
    }

    return 0;
}

代码思路:定义变量啊a,b, 用switch语句来操作,然后用case"+,-,*,/,%“来输出相应的运算结果,若输入为非法符号,则输出"ERROR”
问题:没搞清题目,忘加分号。
解决方法:反复阅读题目,要有清晰的思路。

posted on 2019-10-15 21:19  乙yonyon  阅读(113)  评论(1编辑  收藏  举报