題目內容:
你的程序要讀入一系列正整數數據,輸入-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;
}