1. 程式人生 > >PTA 計算平均值

PTA 計算平均值

現在為若干組整數分別計算平均值。
已知這些整數的絕對值都小於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; }