您好,登錄后才能下訂單哦!
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。