1、思惟导图
2、语法认识
(1)if-else
1.结构c++
if (条件) 语句一; else 语句二;
2.使用方法:求解表达式,若是条件为真,则输出语句一,为假则输出语句二spa
3.问题:含有多个if-else语句时,有时判断else属于哪一个if错误3d
4.解决:听老师讲解和本身从新看分析结构code
(2)switch
1.结构blog
switch (表达式){ case 常量表达式1:语句段1; break; case 常量表达式2:语句段2;break; ... case 常量表达式n:语句段n; break; default: 语句段n+1;break; }
2.使用方法:求解表达式,若表达式与某一常量表达式的值相等,测执行该表达式相应的语句段,若与任何一个都不相等,则执行的default后的语句段,最后执行break跳出switch游戏
3.问题:暂无it
4.解决:暂无io
(3)for
1.结构思维导图
for(表达式1;表达式2;表达式3) 循环体语句
2.使用方法:先计算表达式1,再判断表达式2,若值为真,则先执行循环体语句,再计算表达式3,若值为假,则结束循环class
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.解决:暂无
3、pta分数截图
2.3,2.4做业
第3章做业
4.1做业
4、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\n",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\n",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, ×); int i = 0, guess; while (i < times) { scanf("%d", &guess); if (guess < 0) { printf("Game Over\n"); break; } if (guess > num) { printf("Too big\n"); } if (guess < num) { printf("Too small\n"); } if (guess == num) { if (i == 0) { printf("Bingo!\n"); } else if (i < 3) { printf("Lucky You!\n"); } if (i >= 3) { printf("Good Guess!\n"); } break; } i++; } if (i >= times) { printf("Game Over\n"); } return EXIT_SUCCESS; }
思路:屡次运用if-else语句比较guess和num的大小输出结果
错误缘由:混淆if-else的不一样组合
收获:注意else与最近的if是一组