C语言编程-对数字进行分类
題目描述
給定一系列正整數(shù),請按要求對數(shù)字進(jìn)行分類,并輸出以下5個數(shù)字:
A1 = 能被5整除的數(shù)字中所有偶數(shù)的和;
A2 = 將被5除后余1的數(shù)字按給出順序進(jìn)行交錯求和,即計算n1-n2+n3-n4…;
A3 = 被5除后余2的數(shù)字的個數(shù);
A4 = 被5除后余3的數(shù)字的平均數(shù),精確到小數(shù)點后1位;
A5 = 被5除后余4的數(shù)字中最大數(shù)字。
輸入
每個輸入包含1個測試用例。每個測試用例先給出一個不超過1000的正整數(shù)N,隨后給出N個不超過1000的待分類的正整數(shù)。數(shù)字間以空格分隔。
輸出
對給定的N個正整數(shù),按題目要求計算A1~A5并在一行中順序輸出。數(shù)字間以空格分隔,但行末不得有多余空格。若其中某一類數(shù)字不存在,則在相應(yīng)位置輸出“N”。
樣例輸入
13 1 2 3 4 5 6 7 8 9 10 20 16 18
樣例輸出
30 11 2 9.7 9
解題思路
1.尋找規(guī)律,題目所求五個數(shù)都跟被5除后的余數(shù)有關(guān),所以可以利用switch……case求解
2.根據(jù)分類類別編寫case語句內(nèi)容
3.根據(jù)條件進(jìn)行判斷,若其中某一類數(shù)字不存在,則在相應(yīng)位置輸出“N”
根據(jù)類別編寫case語句內(nèi)容
switch(i%5){case 0: //能被5整除的數(shù)字中所有偶數(shù)的和if(i%2==0)a[0]=a[0]+i;break;case 1: //將被5除后余1的數(shù)字按給出順序進(jìn)行交錯求和if(j%2==0)i=-i;a[1]=a[1]+i;j++;break;case 2: //被5除后余2的數(shù)字的個數(shù)a[2]++;break;case 3: //被5除后余3的數(shù)字的平均數(shù)a[3]=a[3]+i;k=k+1;break; //被5除后余4的數(shù)字中最大數(shù)字case 4:if(i>a[4])a[4]=i;}根據(jù)條件進(jìn)行判斷
for(i=0;i<5;i++){if(i> 0) printf(" ");if(a[i]==0){ //當(dāng)數(shù)組中某一項等于0時if(i!=1) //如果不是A2就直接輸出Nprintf("N");else if(j==1) // j=1說明沒有自增,不滿足條件直接輸出Nprintf("N");elseprintf("%d",a[i]);}else if(i==3) printf("%.1f",a[i]/k); //輸出平均數(shù)else printf("%d",a[i]);}總結(jié)
以上是生活随笔為你收集整理的C语言编程-对数字进行分类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# WinForm 功能代码备忘-刘欣
- 下一篇: 数的分类