刚刷到B1012(数字分类)这道题,我用的是switch()语句的方式进行条件的判断,但总是显示部分正确,对比了网上搜的if语句写的程序,逻辑上明明是一致。。。可能是switch()的参数只能是整型和字符型有关。
最终还是选了用if-else语句来编写程序,如下:
#include<cstdio>
int main(){
int n,temp;
int count[5]={0};
int ans[5]={0};
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&temp);
if(temp % 5 == 0 ){
if( temp % 2 == 0){
ans[0]+=temp;
count[0]++;//A1既要被5整除,又是偶数
}
}else if(temp % 5 == 1){
if(count[1] % 2 == 0){
ans[1]+=temp;
}else{
ans[1]-=temp;
}
count[1]++;
}else if(temp % 5 == 2){
count[2]++;
}else if(temp % 5 == 3){
count[3]++;
ans[3]+=temp;
}else{
if(temp>ans[4]){
ans[4]=temp;
}
count[4]++;
}
}
if(count[0]==0){
printf("N ");
}else{
printf("%d ",ans[0]);
}
if(count[1]==0){
printf("N ");
}else{
printf("%d ",ans[1]);
}
if(count[2]==0){
printf("N ");
}else{
printf("%d ",count[2]);
}
if(count[3]==0){
printf("N ");
}else{
printf("%.1f ",(double)ans[3]/count[3]);
}
if(count[4]==0){
printf("N");
}else{
printf("%d",ans[4]);
}
return 0;
}