給定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』;將char換成string就可以ac了;字串或者字元陣列的結束標誌是』\0』;
定義陣列長度一定要往大了去定
這告訴我們做題要多嘗試。
另:我的**有點複雜了,還有個更簡單的思路:
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 個分數,中間以空格分隔。輸出格式...