PTA 計算平均值
阿新 • • 發佈:2019-01-04
現在為若干組整數分別計算平均值。
已知這些整數的絕對值都小於100,每組整數的數量不少於1個,不大於20個。
輸入格式:首先輸入K(不小於2,不大於20)。接下來每一行輸入一組資料(至少有一組資料),每組至少有一個數據,在有多個數據時,兩個資料之間有1到3個空格。最後一行輸入100,標誌輸入的結束。
輸出格式:對於每一組資料,輸出其前K個數據的均值,如果該組資料個數少於K時,則輸出該組所有資料的均值。輸出的均值只輸出整數部分,直接忽略小數部分。
樣例輸入:
3
10 30 20 40
-10 17 10
10 9
100
樣例輸出:
20
5
9
思路
= =一開始拿到題目,是蒙比的。後來看了xbz的程式碼,恍然大悟。。。
“每組至少有一個數據,在有多個數據時,兩個資料之間有1到3個空格。”智障了。。。直接用字串把數字拿出來就好了。就是預處理一下,在一串裡面拿出資料。然後就隨意了。
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int, int> PI;
typedef pair< PI, int> PII;
const double eps=1e-5;
const double pi=acos(-1.0);
const int mod=1e9+7;
const int INF=0x3f3f3f3f;
int main() {
int n;
cin >>n;
string tt;
string tmp;
getchar();
while(getline(cin,tmp)) {
stringstream ss(tmp);//構造字串流的時候,空格會成為字串引數的內部分界
bool flag=1;
int cnt=0;
int ans=0;
while(ss>>tt) {
int t=atoi(tt.c _str());//atoi直接轉整形數字
cnt++;
if (cnt==1 && t==100) {
flag=0;
break;
}
if(cnt<=n) {
ans+=t;
}
}
if(flag==0) {
break;
}
if(cnt<n) {
if(cnt!=0)
cout<<(ans/cnt)<<endl;
} else
cout<<(ans/(n))<<endl;
}
return 0;
}