赞
踩
给定一系列正整数,请按要求对数字进行分类,并输出以下 5 5 5 个数字:
输入格式:
每个输入包含
1
1
1 个测试用例。每个测试用例先给出一个不超过
1000
1000
1000 的正整数
N
N
N,随后给出
N
N
N 个不超过
1000
1000
1000 的待分类的正整数。数字间以空格分隔。
输出格式:
对给定的
N
N
N 个正整数,按题目要求计算
A
1
A_{1}
A1 ~
A
5
A_{5}
A5 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。
若分类之后某一类不存在数字,则在相应位置输出 N
。
输入样例 1:
13 1 2 3 4 5 6 7 8 9 10 20 16 18
输出样例 1:
30 11 2 9.7 9
输入样例 2:
8 1 2 4 5 6 7 9 16
输出样例 2:
N 11 2 N 9
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
#include <stdio.h> int main(void) { /* 读取正整数的个数N */ int N; scanf("%d", &N); /* 定义变量,并初始化 */ int sum_A1 = 0, count_A1 = 0; //sum_A1表示满足A1条件的正整数的和,count_A1表示满足A1条件的正整数的个数。 int sum_A2 = 0, is_Positive_A2 = 1, count_A2 = 0; //is_Positive_A2用于判断是加上还是减去当前这个满足条件的正整数。 int count_A3 = 0; int sum_A4 = 0, count_A4 = 0; int max_A5 = 0, count_A5 = 0; //max_A5表示满足A5条件的正整数中的最大的一个。 /* 逐个读取正整数,并分别进行A1、A2、A3、A4、A5条件的判断 */ for(int i=0; i<N; i++){ /* 创建临时变量 */ int temp; scanf("%d", &temp); //temp用于存放一个正整数,分别进行五个条件的判断。 /* A1条件的判断 */ if(temp % 10 == 0){ //能被5整除的偶数,也就是能被10整除。 sum_A1 += temp; count_A1++; } /* A2条件的判断 */ if(temp % 5 == 1){ sum_A2 += is_Positive_A2 * temp; is_Positive_A2 *= -1; //改变下一个整数的正负号。 count_A2++; } /* A3条件的判断 */ if(temp % 5 == 2){ count_A3++; } /* A4条件的判断 */ if(temp % 5 == 3){ sum_A4 += temp; count_A4++; } /* A5条件的判断 */ if(temp % 5 == 4){ if(temp > max_A5){ max_A5 = temp; //如果当前的正整数比之前的最大值大,则将当前正整数设置为最大值。 } count_A5++; } } /* 输出A1 */ if(count_A1){ printf("%d", sum_A1); }else{ printf("N"); } /* 输出A2 */ if(count_A2){ printf(" %d", sum_A2); //测试点8:一正一负相加,可能会出现和为零的情况。 }else{ printf(" N"); } /* 输出A3 */ if(count_A3){ printf(" %d", count_A3); }else{ printf(" N"); } /* 输出A4 */ if(count_A4){ printf(" %.1f", (float)sum_A4 / count_A4); //注意:要将整型变量强制转换成浮点型。 }else{ printf(" N"); } /* 输出A5 */ if(count_A5){ printf(" %d", max_A5); }else{ printf(" N"); } return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。