PAT (Basic Level) Practice 1012 数字分类

乙级1012
在这里插入图片描述

仔细审题,第一个数字是输入项N(刚刚还在这里卡了大半天……)
其次是A2,要留心如果通过计算后得出的值是0,那么输出应该是0,而不是N

代码实现:

#include<stdio.h>
#include<iostream>
#include<string>
using namespace std;
int A1(int *p,int len);
int A2(int *p,int len);//计算后可能会有算出来是0的情况 
int A3(int *p,int len);
double A4(int *p,int len);
int A5(int *p,int len);
int main(){
	int a[1001];
	int len = 0;
	cin>>len;
	for(int i = 0;i<len;i++){
		cin>>a[i];
	}
	int a1 = A1(a,len);
	int a2 = A2(a,len);
	int a3 = A3(a,len);
	int a5 = A5(a,len);
	double a4 = A4(a,len);
	if(a1==0){
		cout<<'N';
	}else{
		cout<<a1;
	}
	if(a2==-1){
		cout<<' '<<'N';
	}else{
		cout<<' '<<a2;
	}
	if(a3==0){
		cout<<' '<<'N';
	}else{
		cout<<' '<<a3;
	}
	if(a4==0){
		cout<<' '<<'N';
	}else{
		printf(" %.1lf",a4);
	}
	if(a5==0){
		cout<<' '<<'N';
	}else{
		cout<<' '<<a5;
	}
	return 0;
}
int A1(int *p,int len){
	int sum = 0;
	for(int i = 0;i<len;i++){
		if(p[i]%10==0)
			sum+=p[i];
	}
	return sum;
}
int A2(int *p,int len){
	int isadd = 1;
	int sum = 0;
	int iscount = 0; 
	for(int i = 0;i<len;i++){
		if(p[i]%5==1){
			iscount = 1;
			if(isadd){
				sum = sum+p[i];
				isadd = 0;
			}else{
				sum = sum-p[i];
				isadd = 1;
			}
		}
	}
	if(iscount){
		return sum;
	}else
		return -1;
}
int A3(int *p,int len){
	int sum = 0;
	for(int i = 0;i<len;i++){
		if(p[i]%5==2){
			sum++;
		}
	}
	return sum;
}
double A4(int *p,int len){
	double sum = 0;
	double count = 0;
	double temp;
	for(int i = 0;i<len;i++){
		if(p[i]%5==3){
//			printf("p[%d] = %d\n",i,p[i]);
			temp = (double)p[i];
			sum+=temp;
			count++;
		}
	} 
	if(count==0)
		return 0;
	else
		return sum/count;
}
int A5(int *p,int len){
	int max = 0;
	for(int i = 0;i<len;i++){
		if(p[i]%5==4){
			if(p[i]>max)
				max = p[i];
		}
	}
	return max;
}

猜你喜欢

转载自blog.csdn.net/a656418zz/article/details/83218027
今日推荐