PAT (Basic Level) Practice 1012 数字分类(C语言)

#include<stdio.h>
int main(){
	int n,i,x=1,k=0,t=0;//x用于正负交替 ,k用于求平均数 ,t用于判断A2是存在的,哪怕和为0
	float a[5]={0,0,0,0,0};
	scanf("%d",&n);
	int b[n];
	for(i=0;i<n;i++){
	scanf("%d",&b[i]);
		}
//a1  a[0]
	for(i=0;i<n;i++){
		if(b[i]%10==0){
			a[0]+=b[i];
		}
	}
	//a2   a[1]
	for(i=0;i<n;i++){
		if(b[i]%5==1) {
			a[1]+=(b[i]*x);
			x*=(-1);
			t++;
		}
	}
	//a3   a[2]
	for(i=0;i<n;i++){
		if(b[i]%5==2) {
			a[2]++;
		}
	}
	//a4   a[3]
	for(i=0;i<n;i++){
		if(b[i]%5==3) {			
			a[3]+=b[i];
			k++; 
		}
	}	
	if(k!=0){
		a[3]=(float)(a[3]/k);
			}
	//a5   a[4]
	for(i=0;i<n;i++){
		if(b[i]%5==4) {
			if(b[i]>a[4]){
				a[4]=b[i];
			}
		}
	}		
	for(i=0;i<5;i++){
		if(i==0||i==2||i==4){
			if(a[i]!=0){
				printf("%d",(int)a[i]);
			}else {
				printf("N");
			}			
		}
		if(i==1){
			if(t!=0){
				printf("%d",(int)a[i]);
			}else {
				printf("N");
			}						
		}
		if(i==3){
			if(a[3]!=0){
				printf("%.1f",a[3]);
			}else{
				printf("N");			
		}
	}
		if(i!=4){
			printf(" ");
		}		

}
return 0;
}

不难,但是有点坑。

要注意0不能做除数,以及当A2这类数字存在但是求和为0时要输出0而不是N。

上一篇:Go 排查内存占用过高问题


下一篇:Cmake Practice 总结 复杂例子