输入样例 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
思路1:
1.一次性输完实例,再遍历查找
2.把每类符合的先存到另外的数组中,再对每对数组进行计算
注意点1:
1.数组初始化要为0,后续计算会出错!
int b_a2[n]={};或者 int b_a2[n]={0};
2.注意计算A2类的次数,以及每类的次数。不能拿a1…初值0与计算值相互看待!
代码1:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[n];
for(int i = 0; i < n; i++){
cin>>a[i];
}
int a1=0;
int a2=0;
int a3=0;
int a5=0;
int cnt_a2=0;//次数
int b_a2[n]={};
int j_a2=0;//记录下标
int cnt_a4=0;//次数
int sum_a4=0;//总和
int b_a5[n]={};
int j_a5=0;//记录下标
for(int i = 0; i < n; i++){
if(a[i]%5==0){
if(a[i]%2==0){
a1+=a[i];//a1
}
}
if(a[i]%5==1){
cnt_a2++;
b_a2[j_a2]=a[i];
j_a2++;
}
if(a[i]%5==2){
a3++;
}
if(a[i]%5==3){
cnt_a4++;
sum_a4+=a[i];
}
if(a[i]%5==4){
b_a5[j_a5]=a[i];
j_a5++;
}
}
//求a2
int sum1=0;
int sum2=0;
for(int i = 0; i < n; i++){
if(i%2==0){
sum1+=b_a2[i];
}else if(i%2!=0){
sum2+=(-b_a2[i]);
}
}
a2=sum1+sum2;
//求a4
double a4 = double(sum_a4)/double(cnt_a4);
//求a5
int max=0;
for(int i = 0; i < n; i++){
if(b_a5[i]>max){
max=b_a5[i];
a5=max;
}
}
if(a1!=0){
printf("%d ",a1);
} else {
printf("N ");
}
if(cnt_a2!=0){
printf("%d ",a2);
}else {
printf("N ");
}
if(a3!=0){
printf("%d ",a3);
}else {
printf("N ");
}
if(cnt_a4!=0){
printf("%.1f ",a4);
}else {
printf("N ");
}
if(a5!=0){
printf("%d",a5);
}else {
printf("N");
}
return 0;
}
思路2:
1.次数,结果都存在对应下标的值内。
2.边输入,边判断 ,没有对输入进行限制 ,人工限制
注意点2:
1.printf("%.1f ",(double)result[3]/count[3]);
代码2:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
scanf("%d",&n);
//次数,结果都存在对应下标的值内。
int count[5]={};
int result[5]={};
//边输入,边判断
//没有对输入进行限制 ,人工限制
int temp;
for(int i = 0; i < n; i++){
cin>>temp;
if(temp%5==0){
if(temp%2==0){
count[0]++;
result[0]+=temp;
}
}
else if(temp%5==1){
if(count[1]%2==0){
result[1]+=temp;
}else{
result[1]-=temp;
}
count[1]++;
}
else if(temp%5==2){
count[2]++;
}
else if(temp%5==3){
count[3]++;
result[3]+=temp;
}
else if(temp%5==4){
count[4]++;
if(temp>result[4]){
result[4]=temp;
}
}
}
if(count[0]!=0){
printf("%d ",result[0]);
} else {
printf("N ");
}
if(count[1]!=0){
printf("%d ",result[1]);
}else {
printf("N ");
}
if(count[2]!=0){
printf("%d ",count[2]);
}else {
printf("N ");
}
if(count[3]!=0){
printf("%.1f ",(double)result[3]/count[3]);
}else {
printf("N ");
}
if(count[4]!=0){
printf("%d",result[4]);
}else {
printf("N");
}
}