博客園做業1

1、思惟導圖

img

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, &times);
    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是一組

相關文章
相關標籤/搜索