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是一組