lifhv 发表于 2021-10-26 17:27:58

问题求助

编写一个程序读取整数,直到输入0为止。 在输入结束后,程序应该报告输入的偶数(不包括0)的总数、偶数的平均值、奇数的总数和奇数的平均值。

傻眼貓咪 发表于 2021-10-26 19:18:52

#include <stdio.h>

int main()
{
    int num, A = 0, a = 0, B = 0, b = 0;
    while(1){
      scanf("%d", &num);
      if(num == 0) break;
      else{
            if(num%2){
                A += num;
                a ++;
            }
            else{
                B += num;
                b ++;
            }
      }
    }
    printf("偶数总数:%d\n偶数平均值:%f\n奇数的总数:%d\n奇数平均值:%f", B, (float)B/b, A, (float)A/a);
    return 0;
}输入/输出:1 2 3 4 5 6 7 8 9 0
偶数总数:20
偶数平均值:5.000000
奇数的总数:25
奇数平均值:5.000000

730035 发表于 2021-10-26 22:54:50

#include<iostream>
#include<algorithm>
#include<vector>
#include<numeric>
using namespace std;


int main(){
    vector<int> even;
    vector<int> single;
    while(1){
      int tem=0;
      cin>>tem;
      if(tem==0){break;}

      if(tem%2 == 0){
            even.emplace_back(tem);
      }else{
            single.emplace_back(tem);
      }
    }
    double even_avg=(double)accumulate(even.begin(),even.end(),0)/(double)even.size();
    cout<<"偶数总数: "<<even.size()<<" "<<"偶数平均数"<<even_avg<<endl;
    double single_avg=(double)accumulate(single.begin(),single.end(),0)/(double)single.size();
    cout<<"奇数总数"<<single.size()<<"奇数平均数"<<single_avg<<endl;
    return 0;
}
页: [1]
查看完整版本: 问题求助