PAT 乙级 1012 数字分类

本文介绍了一种对正整数系列进行分类的方法,包括按除以5的不同余数分类并计算特定统计值,如偶数和、交错求和、个数、平均数及最大值。提供了完整的C语言实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

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

  • A1=能被5整除的数字中所有偶数的和
  • A2=将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4…;
  • A3=被5除后余2的数字的个数;
  • A4=被5除后余3的数字的平均数,精确到小数点后1位;
  • A5=被5除后余4的数字中最大数字。

输入格式

每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。

输出格式

对给定的N个正整数,按题目要求就算A1 ~ 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

代码

#include <stdio.h>

int main(){
	int num;
	int arr[1000];
	int i,tmp;
	int a1=0,a2=0,a3=0,a4=0,a5=0;
	int r1=0,r2=0,r3=0,r4=0,r5=0;
	scanf("%d",&num);
	for(i =0;i<num;i++){
		scanf("%d",&arr[i]);
		tmp = arr[i]%5;
		switch(tmp){
			case 0:
				if(arr[i]%2 == 0){
					a1++;
					r1 += arr[i];
				}
				break;
			case 1:
				a2++;
				if(a2%2 ==0){
					r2 -= arr[i];
				}else{
					r2 += arr[i];
				}
				break;
			case 2:
				a3 ++;
				r3 ++;
				break;
			case 3:
				a4++;
				r4+=arr[i];
				break;
			case 4:
				a5 ++;
				if(a5 == 1){
					r5 = arr[i];
				}else{
					if(arr[i]>r5){
						r5 = arr[i];
					}
				}
				break;
			default:
				break;
		}
	}
	if(a1>0){
		printf("%d ",r1);
	}else{
		printf("N ");
	}
	if(a2>0){
		printf("%d ",r2);
	}else{
		printf("N ");
	}
	if(a3>0){
		printf("%d ",r3);
	}else{
		printf("N ");
	}
	if(a4>0){
		printf("%.1f ",1.0*r4/a4);
	}else{
		printf("N ");
	}
	if(a5>0){
		printf("%d\n",r5);
	}else{
		printf("N\n");
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值