给定N个正整数,要求从中得到下列三种计算结果:
1.A1=能被三整除的最大整数
2.A2=存在整数K使之可以表示为3K+1的整数个数
3.A3=存在整数K使之可以表示为3K+2的所有整数的平均值(精确到小数点后一位)
输入格式
第一行输入N,随后一行输入N个正整数,所有数字不超过100
输出格式
一行按顺序输出A1,A2,A3的值,如果某个数字不存在则输出NONE
输入样例 复制
8
5 8 7 6 9 1 3 10
输出样例 复制
9 3 6.5
#include<stdio.h>
#include<math.h>
int main()
{
int a[1000],n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i-1]);
}
int a1=0,a2=0,a3=0;
float a3_sum;
float a3_aver;
for(int i=1;i<=n;i++)
{
if(a[i-1]%3==0)
{
if(a[i-1]>=a1)
{
a1=a[i-1];
}
}
if(a[i-1]%3==1)
{
a2++;
}
if(a[i-1]%3==2)
{
a3++;
a3_sum+=a[i-1];
}
}
a3_aver=a3_sum/a3;
if(a1==0&&a2==0&&a3==0)
printf("NONE NONE NONE ");
if(a1==0&&a2==0&&a3!=0)
printf("NONE NONE %.1f ",a3_aver);
if(a1==0&&a2!=0&&a3==0)
printf("NONE %d NONE ",a2);
if(a1==0&&a2!=0&&a3!=0)
printf("NONE %d %.1f ",a2,a3_aver);
if(a1!=0&&a2==0&&a3==0)
printf("%d NONE NONE ",a1);
if(a1!=0&&a2==0&&a3!=0)
printf("%d NONE %.1f ",a1,a3_aver);
if(a1!=0&&a2!=0&&a3==0)
printf("%d %d NONE ",a1,a2);
if(a1!=0&&a2!=0&&a3!=0)
printf("%d %d %.1f ",a1,a2,a3_aver);
}