目录
问题简介:
分别求出一批非零整数中的偶数、奇数的平均值,用零作为终止标记。
输入格式:
在一行中输入n(n<20)个用空格间隔的正整数,最后输入0结束输入,数据之间只能用1个空格间隔。
输出格式:
在一行中按照“av1=偶数平均值,av2=奇数平均值”的顺序输出结果,结果保留2位小数,没有列宽控制。
输入样例:
2 3 5 6 0
输出样例:
av1=4.00,av2=4.00
输入样例:
1 3 5 0
输出样例:
av1=0.00,av2=3.00
输入样例:
2 4 6 0
输出样例:
av1=4.00,av2=0.00
源代码:
#include <stdio.h>
int main() {
int num;
int even_sum = 0, even_count = 0;
int odd_sum = 0, odd_count = 0;
// 输入非零整数,并计算偶数和奇数的和与个数
while (1) {
scanf_s("%d", &num);
if (num == 0) {
break; // 遇到 0 则结束输入
}
if (num % 2 == 0) {
even_sum += num; // 偶数和
even_count++; // 偶数个数
}
else {
odd_sum += num; // 奇数和
odd_count++; // 奇数个数
}
}
// 计算偶数和奇数的平均值
double even_avg = (even_count > 0) ? (double)even_sum / even_count : 0;
double odd_avg = (odd_count > 0) ? (double)odd_sum / odd_count : 0;
printf("av1=%.2f,av2=%.2f\n", even_avg, odd_avg);
return 0;
}