给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:
输入格式:
每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N,随后给出N个不超过1000的待分类的正整数。数字间以空格分隔。
输出格式:
对给定的N个正整数,按题目要求计算A1~A5并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。
若其中某一类数字不存在,则在相应位置输出“N”。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
int num,i,temp,count0=0,count1=0,count2=0,count3=0,count4=0;
scanf("%d",&num);
int * mode0=new int[num];
int * mode1=new int[num];
int * mode2=new int[num];
int * mode3=new int[num];
int * mode4=new int[num];
for(i=0;i<num;i++)
{
scanf("%d",&temp);//the current num
switch (temp%5)//the mode num
{
case 0:mode0[count0++]=temp;break;
case 1:mode1[count1++]=temp;break;
case 2:mode2[count2++]=temp;break;
case 3:mode3[count3++]=temp;break;
case 4:mode4[count4++]=temp;break;
}
}
int result0=0,result1=0,result2=0,result4=0;
float result3=0.0f;
// bool flag0,flag1,flag2,flag3,flag4;
//A1//////////////////////////////
if(count0==0) printf("N ");//no num in mode0
else
{
for(i=0;i<count0;i++)
if(mode0[i]%2==0) result0=result0+mode0[i];
if(result0==0) printf("N ");
else printf("%d ",result0);
}
//A2/////////////////////////////////
if(count1==0) printf("N ");
else
{
for(i=0;i<count1;i++)
{
if(i%2==0) result1=result1+mode1[i];
else result1=result1-mode1[i];
}
printf("%d ",result1);
}
//A3///////////////////////////////////
if(count2==0) printf("N ");
else
printf("%d ",count2);
//A4///////////////////////////////////
if(count3==0) printf("N ");
else
{
for(i=0;i<count3;i++) result3=result3+mode3[i];
result3=result3/count3;
printf("%.1f ",result3);
}
//A5//////////////////////////////////////
if(count4==0) printf("N");
else
{
result4=mode4[0];
for(i=1;i<count4;i++)
if(mode4[i]>result4) result4=mode4[i];
printf("%d\n",result4);
}
system("pause");
return 0;
}
原文:http://blog.csdn.net/lchinam/article/details/42920649