Skip to content

Latest commit

 

History

History
105 lines (93 loc) · 1.74 KB

数字分类.md

File metadata and controls

105 lines (93 loc) · 1.74 KB

问题描述

给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:

  • 能被 5 整除的数字中所有偶数的和;
  • 将被 5 除后余 1 的数字按给出顺序进行交错求和
  • 被 5 除后余 2 的数字的个数;
  • 。。。

问题求解

#include <stdio.h>

int main() {

	int count[5] = { 0 };
	int res[5] = { 0 };
	//确定输入测试数据的数量 
	int N;
	int temp;
	scanf("%d", &N);
	
	for (int i = 0; i < N; i++)
	{
		scanf("%d", & temp);
		if (temp % 5 == 0) {
			if (temp % 2 == 0)
			{
				res[0] += temp;
				count[0] += 1;
			}	
		} else if (temp % 5 == 1)
		{
			if (count[1] % 2 == 0)
			{
				res[1] += temp;
			} else
			{
				res[1] -= temp;
			}
			count[1] += 1;
			
		} else if (temp % 5 == 2)
		{
			count[2] += 1;
		} else if (temp % 5 == 3)
		{
			count[3] += 1;
			res[3] += temp;
		} else
		{
			if (temp > res[4])
			{
				res[4] = temp;
			}
			count[4] += 1;
			
		}
	}
	if (count[0] == 0)
	{
		printf("N ");
	} else
	{
		printf("%d ", res[0]);
	}

	if (count[1] == 0)
	{
		printf("N ");
	} else
	{
		printf("%d ", res[1]);
	}

	if (count[2] == 0)
	{
		printf("N ");
	} else
	{
		printf("%d ", count[2]);
	}

	if (count[3] == 0)
	{
		printf("N ");
	} else
	{
		printf("%.1f ", (double)res[3] / count[3]);
	}

	if (count[4] == 0)
	{
		printf("N");
	} else
	{
		printf("%d", res[4]);
	}
	return 0;
}

问题注意

  1. 注意在创建数组时,只需要创建2个数组,一个负责计数,一个负责求和
  2. 注意题目中对末尾空格的要求,浮点数精度的要求,这里测试结果表明,float和double都满足题设条件
  3. 注意何如判断数字不存在,这里判断计数数组的值,如果为0,表明这类数字没有出现过,就输出N。