习题4-1 求奇数和

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/melody_1016/article/details/82879807

习题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循环)

猜你喜欢

转载自blog.csdn.net/melody_1016/article/details/82879807