给定一系列正整数,请按要求对数字进行分类,并输出以下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