习题4-1 求奇数和
习题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循环)