给定一系列正整数,请按要求对数字进行分类,并输出以下 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;
}
- 注意在创建数组时,只需要创建2个数组,一个负责计数,一个负责求和
- 注意题目中对末尾空格的要求,浮点数精度的要求,这里测试结果表明,float和double都满足题设条件
- 注意何如判断数字不存在,这里判断计数数组的值,如果为0,表明这类数字没有出现过,就输出N。