1012 数字分类 (20分)

题目地址

1. 需要了解知识

  • STL中的vector(向量),可看成可自动变长的数组。
//头文件
#include<vector>
vector<int> a[5]; //构建一个自动变长的二维数组
a[num%5].push_back(num); //在表尾添加元素
a[i].size();  //数组长度
  • 输出小数点后几位
printf("%.nf",num);  //n为几,则为小数点后几位
  • break:跳出循环 ------ continue:跳出当前循环,进入下次循环

代码:

#include<iostream>
#include<vector>
using namespace std;
int main(){
	vector<int> a[5];
	int n,a1=0,a2=0,a3=0,a5=0,index=1;
	double a4=0.0;
	cin>>n;
	for(int i=0;i<n;i++){       //按余数分类输入 
	    int num;
		cin>>num;
		a[num%5].push_back(num);
	}
	for(int i=0;i<5;i++){             //按要求操作
		for(int j=0;j<a[i].size();j++){
			if(i==0&&a[i][j]%2==0) a1+=a[0][j];
			if(i==1){
				a2+=a[i][j]*index;index*=-1;
			} 
			if(i==2) a3++;
			if(i==3) a4+=a[i][j];
			if(i==4) a5=(a5>a[i][j]?a5:a[i][j]);
		}
	}
	for(int i=0;i<5;i++){
		if(i!=0) cout<<" ";     //除开第一个元素后,按空格+元素格式输出
		if(i==0&&a1==0||i!=0&&a[i].size()==0){
			cout<<"N";continue;
		}
		if(i==0) cout<<a1;
		if(i==1) cout<<a2;
		if(i==2) cout<<a3;
		if(i==3) printf("%.1f",a4/a[3].size());
		if(i==4) cout<<a5;
	}
	return 0;
}

总结:STL是真的好用,简洁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值