https://www.nowcoder.com/pat/6/problem/4078
给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和; A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...; A3 = 被5除后余2的数字的个数; A4 = 被5除后余3的数字的平均数,精确到小数点后1位; A5 = 被5除后余4的数字中最大数字。
每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N,随后给出N个不超过1000的待分类的正整数。数字间以空格分隔。
对给定的N个正整数,按题目要求计算A1~A5并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。 若其中某一类数字不存在,则在相应位置输出“N”。
13 1 2 3 4 5 6 7 8 9 10 20 16 18
30 11 2 9.7 9
#include<stdio.h> #include<stdlib.h> #define MAX(a,b) (a>b)?a:b int main() { int sum=0,sum1=0,sum1_flag=1,num2=0,sum3=0,sum3_num=0,max4=0,num,data; scanf("%d",&num); for(;num>0;num--){ scanf("%d",&data); switch(data%5){ case 0: if(!(data%2)) sum+=data; break; case 1: sum1+=sum1_flag*data; sum1_flag*=-1; break; case 2: num2++; break; case 3: sum3+=data; sum3_num++; break; case 4: max4=MAX(max4,data); break; default : break; } } if(sum>0&&sum1>0&&num2>0&&sum3_num>0&&max4>0) printf("%d %d %d %.1f %d\n",sum,sum1,num2,1.0*sum3/sum3_num,max4); else{ if(sum!=0) printf("%d ",sum); else printf("N "); if(sum1!=0) printf("%d ",sum1); else printf("N "); if(num2!=0) printf("%d ",num2); else printf("N "); if(sum3!=0) printf("%.1f ",1.0*sum3/sum3_num); else printf("N "); if(max4!=0) printf("%d",max4); else printf("N"); } return 0; }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。