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