习题4-1 求奇数和 (15分) 本题要求计算给定的一系列正整数中奇数的和。

输入格式:
输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。

输出格式:
在一行中输出正整数序列中奇数的和。

输入样例:

1
8 7 4 3 70 5 6 101 -1

输出样例:

1
116

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>

int main() {
int num,count=0;
while(num>0) {
if(scanf("%d",&num)){};
if(num%2==1) {
count +=num;
}
}
printf("%d",count);
return 0;
}
挺简单的一个题目,这里本来想用for循环,想了下while会更加简洁。
一开始考虑的设置一个flag变量,用这个变量判断是否退出循环
或遇到负数或0跳出循环
但仔细一想其实完全可以直接用我们输入的数字进行判断
这样就节省了很多,不过pta会报错说你没有对num初始化
by the way其实随便初始化一个大于等于零的变量就可以但是感觉没有意义的