習題4-1 求奇數和
阿新 • • 發佈:2018-12-12
習題4-1 求奇數和 (15 分)
本題要求計算給定的一系列正整數中奇數的和。
輸入格式:
輸入在一行中給出一系列正整數,其間以空格分隔。當讀到零或負整數時,表示輸入結束,該數字不要處理。
輸出格式:
在一行中輸出正整數序列中奇數的和。
輸入樣例:
8 7 4 3 70 5 6 101 -1
輸出樣例:
116
分析:本題較為簡單,基本思想就是判斷奇數。此外,關於數的儲存方式,由於是要不斷輸入,計算加和,所以可以選擇定義一個數組進行儲存也可以不選用。這裡我沒有選擇陣列儲存的方式,因為考慮到輸入的數個數未知,有可能是較大規模資料也有可能是小規模,所以大小不好定義。這裡還是用一個變數儲存比較方便。
程式碼:(三種不同的迴圈,ps:就當複習了)
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int Odd(int num) { int ret = 0; if (num % 2 != 0)//是奇數 { ret = num; } return ret; } int main() { //while迴圈 int num; int sum = 0; scanf("%d", &num); while (num > 0 ) { if (Odd(num)) { sum = sum + num; } scanf("%d", &num); } printf("%d\n", sum); //do while 迴圈 int num; int sum = 0; do { scanf("%d", &num); if (num <= 0) { break; } if (Odd(num)) { sum = sum + num; } } while (num > 0); printf("%d\n", sum); //for迴圈 int num; int sum = 0; scanf("%d", &num); for (sum = 0; num > 0;) { if (Odd(num)) { sum = sum + num; } scanf("%d", &num); } printf("%d\n", sum); system("pause"); return 0; }
測試結果:(while迴圈)