• 博客园作业1


    一、思维导图

    img

    二、语法认识

    (1)if-else

    1.结构

    if (条件) 
       语句一;
    else 
       语句二;
    

    2.使用方法:求解表达式,如果条件为真,则输出语句一,为假则输出语句二

    3.问题:含有多个if-else语句时,有时判断else属于哪个if错误

    4.解决:听老师讲解和自己重新看分析结构

    (2)switch

    1.结构

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

    2.使用方法:求解表达式,若表达式与某一常量表达式的值相等,测执行该表达式相应的语句段,若与任何一个都不相等,则执行的default后的语句段,最后执行break跳出switch

    3.问题:暂无

    4.解决:暂无

    (3)for

    1.结构

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

    2.使用方法:先计算表达式1,再判断表达式2,若值为真,则先执行循环体语句,再计算表达式3,若值为假,则结束循环

    3.问题:表达式2 3的顺序有时会弄混,执行i++时i是这个循环的值还是上个循环的值有时会弄混

    4.解决:在草稿纸上画出程序框图

    (4)while

    1.结构

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

    2.使用方法:当表达式的值为真,循环执行,直到表达式值为假,循环终止并执行while的下一条语句

    3.问题:没有注意循环体只能是一条语句

    4.解决:改成单条语句

    (5)do-while

    1.结构

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

    2.使用方法:第一次进入循环,首先执行循环体语句,然后再检查循环控制条件,即计算表达式,若值为真,继续循环,直到值为假,执行下一条语句

    3.问题:判断是否继续执行时的条件有误

    4.解决:多练

    (6)break语句和continue语句

    1.结构

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

    2.使用方法:break 当循环结构出现多个循环条件时,可以由循环语句中的表达式和break语句共同控制

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

    3.问题:暂无

    4.解决:暂无

    三、pta分数截图

    2.3,2.4作业

    第3章作业

    4.1作业

    四、pta代码分析

    2.3,2.4作业

    7-2 求奇数分之一序列前N项和 (15 分)

    本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和。

    输入格式:

    输入在一行中给出一个正整数N。

    输出格式:

    在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。题目保证计算结果不超过双精度范围。

    输入样例:

    23
    

    输出样例:

    sum = 2.549541
    
    #include<stdio.h>
    int main()
    {
    	int n,i,zi=1,mu=1;   
    	double sum=0;        
    	scanf("%d",&n);
    	for(i=1;i<=n;i++)
    	{
    		sum+=zi*1.0/mu;
    		mu+=2;
    	}
    	printf("sum = %lf
    ",sum);
    }
    

    思路:输入字符后用1.0比得到分数,再进行累加

    错误原因:最后答案格式有瑕疵,注意题目中要求的精确度

    收获:注意答案中给定的精确度,不要忘记乘1.0,注意每一项之间的规律

    第3章作业

    7-10 统计学生成绩 (15 分)

    本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:

    • 大于等于90分为A;
    • 小于90且大于等于80为B;
    • 小于80且大于等于70为C;
    • 小于70且大于等于60为D;
    • 小于60为E。

    输入格式:

    输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。

    输出格式:

    在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。

    输入样例:

    7
    77 54 92 73 60 65 69
    

    输出样例:

    1 0 2 3 1
    
    #include<stdio.h>
    int main()
    {
    	int N;
    	int i,x;
    	int a=0,b=0,c=0,d=0,e=0;
    	while(scanf("%d",&N)!=EOF){
    		
    		for(i=0;i<N;i++){
    			scanf("%d",&x);
    		
    		if(x>=90){
    			a++;
    		}else if(x>=80){
    			b++;
    		}else if(x>=70){
    			c++;
    		}else if(x>=60){
    			d++;
    		}else{
    			e++;,
    		}
    	}
    		printf("%d %d %d %d %d
    ",a,b,c,d,e);
    		
    	} 
    	return 0;
    }
    

    思路:输入字符后,通过多个if-else循环,分出不同分数段,输出等级

    错误:5个等级,最后要有5个结果

    收获:注意所有结果的输出

    4.1作业

    7-8 猜数字游戏 (15 分)

    猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。

    输入格式:

    输入第一行中给出两个不超过100的正整数,分别是游戏机产生的随机数、以及猜测的最大次数N。最后每行给出一个用户的输入,直到出现负数为止。

    输出格式:

    在一行中输出每次猜测相应的结果,直到输出猜对的结果或“Game Over”则结束。

    输入样例:

    58 4
    70
    50
    56
    58
    60
    -2
    

    输出样例:

    Too big
    Too small
    Too small
    Good Guess!
    
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void) {
        int num, times;
        scanf("%d %d", &num, &times);
        int i = 0, guess;
        while (i < times) {
    
            scanf("%d", &guess);
            if (guess < 0) {
                printf("Game Over
    ");
                break;
            }
            if (guess > num) {
                printf("Too big
    ");
            }
            if (guess < num) {
                printf("Too small
    ");
            }
            if (guess == num) {
                if (i == 0) {
                    printf("Bingo!
    ");
                } else if (i < 3) {
                    printf("Lucky You!
    ");
                }
                if (i >= 3) {
                    printf("Good Guess!
    ");
                }
                    break;
            }
            i++;
        }
        if (i >= times) {
            printf("Game Over
    ");
        }
        return EXIT_SUCCESS;
    }
    

    思路:多次运用if-else语句比较guess和num的大小输出结果

    错误原因:混淆if-else的不同组合

    收获:注意else与最近的if是一组

  • 相关阅读:
    20145301 《信息安全系统设计基础》第10周学习总结
    20145301&20145321&20145335实验二
    20145301 《信息安全系统设计基础》第9周学习总结
    20145301&20145321&20145335实验一
    20145301 《信息安全系统设计基础》第8周学习总结
    20145301 《信息安全系统设计基础》第7周学习总结
    20145301 《信息安全系统设计基础》第6周学习总结
    20145301 《信息安全系统设计基础》第5周学习总结
    20145240 《信息安全系统设计基础》第十周学习总结
    20145218&20145240 《信息安全系统设计基础》实验二 固件设计
  • 原文地址:https://www.cnblogs.com/lim-M/p/11682162.html
Copyright © 2020-2023  润新知