0
已解决
题目描述 Description
输入一个整数k,然后输入一行正整数,输入-1时表示输入结束。
当k为奇数时,输出这一行正整数中所有奇数的和。
当k为偶数时,输出这一行正整数中所有偶数的平均值(保留两位小数)。
输入描述 Input Description
两行,第一行输入整数k。
第二行输入若干个正整数,以及最后一个数-1,用空格隔开。
输出描述 Output Description
一行,当k为奇数时输出奇数的和。
当k为偶数时输出偶数的平均值(保留两位小数)。
样例输入 Sample Input
【输入样例1】 3 5 7 2 4 8 -1 【输入样例2】 6 5 7 2 4 8 -1
样例输出 Sample Output
【输出样例1】 12 【输出样例2】 4.67
这是一个死循环代码:
#include<iostream>
#include<cstdio>
using namespace std;
long long sum;
int main(){
int k,a;
cin>>k>>a;
while(a!=-1){
if(k%2==1){
sum+=a;
cout<<sum;
}
else{
sum+=a;
printf("%.2f",sum/a);
}
}
return 0;
}
0
0
核心代码:
cin>>k;
if(k%2==0)
{
while(a!=-1)
{
cin>>a;
if(a%2==0&&a!=-1)
{
cnt++;
sum+=a;
}
}
printf("%.2f",sum*1.0/cnt);
}
else
{
while(a!=-1)
{
cin>>a;
if(a%2==1&&a!=-1) sum+=a;
}
cout<<sum;
}
0