一、题目及要求
1、题目内容
你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。
2、要求限制
输入格式:
一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。
输出格式:
两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。
3、样例
输入样例:
9 3 4 2 5 7 -1
输出样例:
4 2
二、分析及代码
1、难点分析
1)分别对奇数和偶数进行计数。
2)主要是分支结构的选择,由于所有正整数与2取模的结果只有 0 和 1,因此使用Switch-Case条件判断结构相对会简洁一点。
2、代码设计:
#include <stdio.h>
//奇偶个数问题
//对奇数、偶数单独计数,当输入-1时退出程序。
int main(){
int number;
int count1 = 0;
int count2 = 0;
do{
scanf("%d",&number);
//利用正整数对2取模结果只有1与0,用分支判断会快一点
switch (number%2){
case 1: count1 ++; break;
case 0: count2 ++; break;
}
}while(number != -1);
printf("%d %d",count1,count2);
}