PTA 統計成績2 10分

2021-10-11 14:45:15 字數 1548 閱讀 5690

給定n個學生的基本資訊,包括學號(由12個數字組成的字串)、姓名(長度小於20的不包含空白字元的非空字串)、高等數學成績、c語言程式設計成績,成績均為[0,100]區間內的整數,要求統計高等數學成績及格的人數,並按輸入順序給出高等數學及格學生名單。

輸入格式:

輸入在一行中給出正整數n(≤10)。 隨後n行,每行給出一位學生的資訊,格式為「學號 姓名 高等數學成績 c語言程式設計成績」,中間以空格分隔。

輸出格式:

首先在一行中輸出高等數學及格人數,然後按照輸入順序,每行輸出一位該成績及格的學生的學號和姓名,間隔乙個空格。

輸入樣例:

3

201410300106 wanyun 70 88

201618050322 zhangyu 59 60

201509210118 lixiao 80 80

輸出樣例:

2

201410300106 wanyun

201509210118 lixiao

一道要用結構體的水題。

有乙個會錯的地方:

用數字組成的學號那裡,若定義的是char num[12],則學號和姓名都會輸入num中(空格自動沒了??);但是name會單獨賦值,就像這樣:

問了師兄之後的原因:

cin會把所有的輸入都放到緩衝區裡,cout再從緩衝區裡拿,如果cout拿的時候沒有遇到』\0』,就會一直往後拿,直至遇到』\0』;

字串或者字元陣列的結束標誌是』\0』;

定義陣列長度一定要往大了去定

將char換成string就可以ac了;

這告訴我們做題要多嘗試。

另:我的**有點複雜了,還有個更簡單的思路:

1、判斷合格的數量,在輸出的時候再判斷,若合格就輸出;

前面的數量是用來搞最後一行不換行的。

最近做陣列做的有點瘋魔,看啥啥陣列,以後一定找最優解法。

2、學號可以用long long int;

**:

#include

using

namespace std;

intmain()

std[10]

;//2 標記乙個及格陣列

int v[11]

,m=0

;for

(int i=

0;i<

11;i++

)for

(int i=

0;iint v1[11]

,temp=0;

for(

int i=

0;i<

11;i++)}

//3 輸出

cout<

for(

int i=

0;i)return0;

}

7 2 統計成績2 10 分

統計學生成績 資料規模大,高效輸入和高效演算法,主要是卡時 本題要求編寫程式讀入n個學生的百分制成績,統計五分制成績的分布。百分制成績到五分制成績的轉換規則 大於等於90分為a 小於90且大於等於80為b 小於80且大於等於70為c 小於70且大於等於60為d 小於60為e。輸入格式 輸入在第一行中...

PTA 作業7 統計成績2

7 3 統計成績2 10分 給定n個學生的基本資訊,包括學號 由12個數字組成的字串 姓名 長度小於20的不包含空白字元的非空字串 高等數學成績 c語言程式設計成績,成績均為 0,100 區間內的整數,要求統計高等數學成績及格的人數,並按輸入順序給出高等數學及格學生名單。輸入格式 輸入在一行中給出正...

PTA 乙級1038 統計同成績學生 20 分

本題要求讀入 n 名學生的成績,將獲得某一給定分數的學生人數輸出。輸入格式 輸入在第 1 行給出不超過 10 5 的正整數 n,即學生總人數。隨後一行給出 n 名學生的百分制整數成績,中間以空格分隔。最後一行給出要查詢的分數個數 k 不超過 n 的正整數 隨後是 k 個分數,中間以空格分隔。輸出格式...