题目
现在为若干组整数分别计算平均值。
已知这些整数的绝对值都小于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
代码长度限制16 KB
时间限制400 ms
内存限制64 MB
思考
看到题目首先想到整型数组,但是换行不控制,之后想到字符数组,用flag旗帜提取数字,但是转化为数太麻烦,*10,*100啥的,写了半天,能力有限,没写出来。之后看到大佬(Sy_Faker)的解法,根本不用数组,:(
用一个丢一个,妙啊!大佬6666。
自己再推一次。
代码
#include<iostream>
using namespace std;
int main()
{
int a,x,i,sum=0;
char ch;
cin>>x;
getchar();
cin>>a;
ch=getchar();
while(a!=100)
{
for(i=1,sum=0;ch!='\n';i++)
{
if(i<=x) sum+=a;
cin>>a;ch=getchar();
}
if(i<=x) sum+=a;
if(i<=x) cout<<sum/i<<endl;
else cout<<sum/x<<endl;
cin>>a;
ch=getchar();
}
return 0;
}
ps:
这是一个学完c后两个月,没打代码的小白,正在学c++,写的第一个题。
果然不打代码是不行的:(
加油!重新搞起!