题目内容:
你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。
输入格式:
一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。
输出格式:
两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。
输入样例:
9 3 4 2 5 7 -1
输出样例:
4 2
#include<stdio.h>
int main(){
int a, n=0, m=0;
while(scanf("%d", &a)){
if(a==-1){
break;
}
n++;
if(a%2==0){
m++;
}
}
printf("%d %d", n-m, m);
return 0;
}
思路:
1.判断一个数是否为奇数还是偶数很简单,办法就是让这个数对2取余,如果结果为0代表这个数是一个偶数,如果结果为1代表这个数为奇数。这里需要使用一个if语句。
2.需要判断多个数据,这里需要使用循环,那么使用三种循环(while,do_while,for)中的哪一个呢?这里选择使用while,因为我们的循环次数不确定且我们的边界条件也不确定,故不能用for,do_while循环要先做一次再判断,也不适用,假如一开始就输入-1呢,所以使用while循环。需要使用多次输入数据可以用这个结构while(scanf("%d", &a)){}
3.输入-1表示结束,需要在while循环里用if(a==-1){
break;
}