怎么考慮這個問題。
首先先確定肯定是需要一個變量保存輸入的數據的,我們叫它input,最后結果要的是個數,所以需要另外兩個變量來保存奇數的個數和偶數的個數。
int input
int countJ
int cuntO
緊接着肯定需要一個循環,我們先考慮循環體內部每次要執行的東西。
{
判斷這個數是偶數還是奇數,如果是奇數則countJ++,否則countO++;
}
最后輸出countJ和countO的數值,那么大概的框架已經出來了。
接着考慮循環的條件是什么?如果輸入的數據是-1則循環,對不對,所以是
while(input!=-1)
{
判斷這個數是偶數還是奇數,如果是奇數則countJ++,否則countO++;
}
那么input的值是哪里來的呢?是不是必須前面要有個scanf啊,所以代碼是這樣的:
scanf_s("%d",&input);
while(input!=-1)
{
判斷這個數是偶數還是奇數,如果是奇數則countJ++,否則countO++;
}
這樣就可以了嗎?不行啊,因為只scanf了一次數據,那就只能讀取到一個數據,所以再循環內部還需要scanf一次
所以代碼就變成了
scanf_s("%d",&input);
while(input!=-1)
{
判斷這個數是偶數還是奇數,如果是奇數則countJ++,否則countO++;
scanf_s("%d",&input);
}
最后代碼如下面所示:
int input = 0; int countJ = 0; int countO = 0; scanf_s("%d",&input); while (input != -1) { //偶數是可以被二整除的,所以偶數對2取余肯定是0 if ((input%2)== 0) { countO++; } else { countJ++; } scanf_s("%d",&input); } printf("jishugeshu:%d oushugeshu %d",countJ,countO);