这道题,我只给这个要注意的点,因为这个我浪费了2个小时。
下面的方法是不用判断第一个数字就可以做出来的:);
#include<stdio.h>
main(){
int A1[1005]={-1},A2=0,A3,A5[1005]={-1};
int i,n,temp1,temp2,temp5;
int sum,max,t,c,test,sum2;
float temp4,A4,ave;
char ch;
temp1=0;temp2=0;temp4=0;temp5=0; A4=0; A3=0; test=0;
scanf("%d",&n);
do{
scanf("%d",&test);
c=test%5;
switch (c){
case 0:{
if((test%2)==0){
temp1++;
A1[temp1]=test;}
break;
}
case 1:{
temp2++;
if((temp2%2)==0){
A2-=test;
}else{
A2+=test;
}
break;
}
case 2:{
A3++;
break;
}
case 3:{
temp4++;
A4+=test;
break;
}
case 4:{
temp5++;
A5[temp5]=test;
break;
}
}
}while((ch=getchar())!='\n');
sum=0;
for(i=1;i<=temp1;i++){
sum+=A1[i];
}
if(temp1>0){
printf("%d ",sum);
}else{
printf("N ");
}
if(temp2>0){
printf("%d ",A2);
}else{
printf("N ");
}
if(A3>0){
printf("%d ",A3);
}else{
printf("N ");
}
ave=1.0*A4/temp4;
if(temp4>0){
printf("%.1f ",ave);
}else{
printf("N ");
}
max=0;
for(i=1;i<=temp5;i++){
if(A5[i]>max){
t=A5[i];
A5[i]=max;
max=t;
}
}
if(temp5>0){
printf("%d",max);
}else{
printf("N");
}
return 0;
}
我还能怎么办,我也很绝望啊,为了那几个案例八除五余三我都用纸算了一遍……