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是真的好用,简洁。