1012數(shù)字分類

問題描述:
給定一系列正整數(shù)锣吼,請按要求對數(shù)字進(jìn)行分類确丢,并輸出以下 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è)測試用例狐粱。每個(gè)測試用例先給出一個(gè)不超過 1000 的正整數(shù) N,隨后給出 N 個(gè)不超過 1000 的待分類的正整數(shù)胆数。數(shù)字間以空格分隔肌蜻。

輸出格式:
對給定的 N 個(gè)正整數(shù),按題目要求計(jì)算 A1~A5 并在一行中順序輸出必尼。數(shù)字間以空格分隔蒋搜,但行末不得有多余空格篡撵。若其中某一類數(shù)字不存在,則在相應(yīng)位置輸出 N豆挽。

輸入樣例 1:
13 1 2 3 4 5 6 7 8 9 10 20 16 18
輸出樣例 1:
30 11 2 9.7 9
輸入樣例 2:
8 1 2 4 5 6 7 9 16
輸出樣例 2:
N 11 2 N 9

這道題算是很簡單的育谬,但是對輸出精度的格式不熟悉的話就不能按照題目要求輸出精確到小數(shù)點(diǎn)后一位的浮點(diǎn)數(shù)。

實(shí)現(xiàn)如下:

#include <stdio.h>

int main()
{
    int count;
    scanf("%d",&count);
    if (count > 1000)
    {
        return -1;
    }
    int number[1000] = {0};
    for (int i = 0 ; i < count ; i++)
    {
        scanf("%d",&number[i]);
    }
    double results[5] = {0.0};
    int circleCount1 = 0;
    int circleCount2 = 0;
    for (int i = 0 ; i < count ; i++)
    {
        //求A1
        if ((number[i] % 5) == 0 && (number[i] % 2) == 0)
        {
            results[0] = results[0] + number[i];
        }
        //求A2
        if ((number[i] % 5) == 1)
        {
            circleCount1++;
            if ((circleCount1 % 2) != 0)
            {
                results[1] = results[1] + number[i];
            }
            else
            {
                results[1] = results[1] - number[i];
            }
        }
        //求A3
        if ((number[i] % 5) == 2)
        {
            results[2]++;
        }
        //求A4
        if ((number[i] % 5) == 3)
        {
            circleCount2++;
            results[3] = results[3] + number[i];
        }
        //求A5
        if ((number[i] % 5) == 4)
        {
            if (number[i] > results[4])
            {
                 results[4] = number[i];
            }
        }
    }
    if (circleCount2 != 0)
    {
        results[3] /= circleCount2;
    }
    for (int i = 0 ; i < 5 ; i++)
    {
        if (results[i] == 0.0)
        {
            printf("%c",'N');
        }
        else
        {
            if (i == 3)
            {
                printf("%.1f",results[3]);
            }
            else
            {
                printf("%d",(int)results[i]);
            }
        }
        if (i != 4)
        {
            printf("%c",' ');
        }
    }
    return 0;
}

或者如下:

#include <iostream>

using namespace std;

int main()
{
   int count;
   cin >> count;
   if (count > 1000)
   {
       return -1;
   }
   int number[1000] = {0};
   for (int i = 0 ; i < count ; i++)
   {
       cin >> number[i];
   }
   double results[5] = {0.0};
   int circleCount1 = 0;
   int circleCount2 = 0;
   for (int i = 0 ; i < count ; i++)
   {
       //求A1
       if ((number[i] % 5) == 0 && (number[i] % 2) == 0)
       {
           results[0] = results[0] + number[i];
       }
       //求A2
       if ((number[i] % 5) == 1)
       {
           circleCount1++;
           if ((circleCount1 % 2) != 0)
           {
               results[1] = results[1] + number[i];
           }
           else
           {
               results[1] = results[1] - number[i];
           }
       }
       //求A3
       if ((number[i] % 5) == 2)
       {
           results[2]++;
       }
       //求A4
       if ((number[i] % 5) == 3)
       {
           circleCount2++;
           results[3] = results[3] + number[i];
       }
       //求A5
       if ((number[i] % 5) == 4)
       {
           if (number[i] > results[4])
           {
                results[4] = number[i];
           }
       }
   }
   if (circleCount2 != 0)
   {
       results[3] /= circleCount2;
   }
   for (int i = 0 ; i < 5 ; i++)
   {
       if (results[i] == 0.0)
       {
           cout << "N";
       }
       else
       {
           if (i == 3)
           {
               cout.flags(ios::fixed);
               cout.precision(1);
               cout << results[3];
           }
           else
           {
               cout << (int)results[i];
           }
       }
       if (i != 4)
       {
           cout << ' ';
       }
   }
   return 0;
}

現(xiàn)在來復(fù)習(xí)一下C/C++中數(shù)據(jù)輸出的格式控制

數(shù)據(jù)的輸出格式控制:

C語言中:

1.在C語言中帮哈,頭文件stdio.h中的printf函數(shù)(標(biāo)準(zhǔn)的格式輸出函數(shù))可以按照指定的格式輸出數(shù)據(jù)膛檀。printf函數(shù)的聲明:

int __CRTDECL printf(char const* const _Format,...);

printf函數(shù)聲明在圓括號內(nèi)包含格式控制和輸出表列兩部分。格式控制:格式控制是由雙引號引起來的格式字符串娘侍,也稱為“轉(zhuǎn)換控制字符串”咖刃。它包括兩部分:
1.格式說明符:如%d,%f等,它的作用是將要輸出的數(shù)據(jù)轉(zhuǎn)換成指定的格式輸出憾筏。格式說明符總是由%字符開始的嚎杨。
2.普通字符:即需要原樣輸出的字符主要是解釋說明奔缠。printf("%d,%c\n",a,ch1);這句代碼中雙引號內(nèi)的逗號和換行符就是普通字符尉桩。
注意格式說明符中%后面的字符就是格式字符掉分,常見的字符如下:

格式字符.png

對于%e這個(gè)格式說明符來說焦履,數(shù)字部分的小數(shù)位數(shù)占6位榕堰,指數(shù)占4位权谁。小數(shù)點(diǎn)前必須有且僅有一位非0數(shù)字贞谓。
對于數(shù)據(jù)輸出一定的長度的控制铲汪,我們來看示例:
1.整形數(shù)據(jù)的輸出

#include <cstdio>
int main()
{
    int a = 12;
    long b = 2456988;
    printf("a = %d,a = %6d,a = %-6d,a = %06d\n",a,a,a,a);
    printf("%ld\n",b);
    printf("%d,%o,%x",a,a,a);
    printf("\n");
    return 0;
}

//運(yùn)行結(jié)果如下:
//a = 12, a = 12, a = 12, a = 000012
//2456988
//12, 14, c

%d:表示按照整形數(shù)據(jù)類型的整數(shù)的實(shí)際長度輸出
%6d:表示該數(shù)據(jù)的輸出占六位斤富,如果不足六位左邊補(bǔ)以空格
%-6d:表示以左對齊方式輸出膏潮,如果不足六位右邊補(bǔ)上空格
%06d:表示數(shù)據(jù)的輸出占6位,如果不足六位满力,左邊補(bǔ)上0
%ld:輸出長整型整數(shù)

2.實(shí)型數(shù)據(jù)的輸出

#include <cstdio>

int main()
{
    float x = 123.456;
    double y = 123.45678;
    printf("%f,%f\n",x,y);
    printf("%.1f,%.1f\n", x, y);
    printf("%8.2f,%10.3f\n",x,y);
    printf("%e\n",x);
    return 0;
}

//運(yùn)行結(jié)果
//123.456001, 123.456780
//123.5, 123.5
//123.46, 123.457
//1.234560e+02

%f的精度缺省值為6位
%.1f表示數(shù)據(jù)輸出時(shí)精度為1
%8.2f表示數(shù)據(jù)的輸出占八位焕参,小數(shù)點(diǎn)后占兩位(精度為2)。
%e:表示將實(shí)型數(shù)據(jù)按照指數(shù)形式輸出油额。

3.字符型數(shù)據(jù)的輸出

#include <cstdio>

int main()
{
    char c = 'a';
    printf("%c\n",c);
    printf("%5c\n", c);
    printf("%-5c\n", c);
    return 0;
}

%5c:表示將數(shù)據(jù)輸出叠纷,不足五位則左邊補(bǔ)上空格
%-5c:表示將數(shù)據(jù)輸出,不足五位則右邊補(bǔ)上空格

4.字符串的輸出

#include <cstdio>

int main()
{
    printf("%3s\n","CHINA");
    printf("%7.2s\n", "CHINA");
    printf("%.4s\n", "CHINA");
    printf("%-5.3s\n", "CHINA");
    return 0;
}

%ms:表示輸出指定寬度的字符串,若m大于字符串的實(shí)際長度潦嘶,則左端補(bǔ)上空格涩嚣,否則按照實(shí)際長度輸出
%-ms:如果m大于字符串的實(shí)際長度,則輸出的字符串在m列范圍內(nèi)左對齊掂僵,右端補(bǔ)上空格航厚。
%m.ns:輸出占m列,但只截取字符串的前n個(gè)字符,這n個(gè)字符輸出在m列的右端锰蓬,左端補(bǔ)上空格幔睬。
%-m.ns:mn的含義同上,只是n個(gè)字符輸出在m列的左端芹扭,右端補(bǔ)上空格麻顶。

C++中:
#include <iostream>
#include <iomanip>  //for setprecision()

using namespace std;

int main()
{
    float a = 123.236554;
    cout.flags(ios::fixed);
    cout.precision(2);  //將a這個(gè)單精度實(shí)數(shù)精確到兩位輸出
    cout << a;          //123.24
    return 0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赦抖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子澈蚌,更是在濱河造成了極大的恐慌摹芙,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宛瞄,死亡現(xiàn)場離奇詭異浮禾,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)份汗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門盈电,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人杯活,你說我怎么就攤上這事匆帚。” “怎么了旁钧?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵吸重,是天一觀的道長。 經(jīng)常有香客問我歪今,道長嚎幸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任寄猩,我火速辦了婚禮嫉晶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘田篇。我一直安慰自己替废,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布泊柬。 她就那樣靜靜地躺著椎镣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兽赁。 梳的紋絲不亂的頭發(fā)上衣陶,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機(jī)與錄音闸氮,去河邊找鬼。 笑死教沾,一個(gè)胖子當(dāng)著我的面吹牛蒲跨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播授翻,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼或悲,長吁一口氣:“原來是場噩夢啊……” “哼孙咪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起巡语,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤翎蹈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后男公,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荤堪,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年枢赔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了澄阳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡踏拜,死狀恐怖碎赢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情速梗,我是刑警寧澤肮塞,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站姻锁,受9級特大地震影響枕赵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜屋摔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一烁设、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧钓试,春花似錦装黑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至挽鞠,卻和暖如春疚颊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背信认。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工材义, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嫁赏。 一個(gè)月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓其掂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親潦蝇。 傳聞我的和親對象是個(gè)殘疾皇子款熬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,333評論 0 2
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,370評論 0 5
  • 一深寥、Python簡介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡介】: Python 是一個(gè)...
    _小老虎_閱讀 5,725評論 0 10
  • 給定一系列正整數(shù),請按要求對數(shù)字進(jìn)行分類贤牛,并輸出以下 5 個(gè)數(shù)字: A?1??= 能被 5 整除的數(shù)字中所有偶數(shù)的...
    JO炮閱讀 170評論 0 0
  • 題目 鏈接:PAT (Basic Level) Practice 1012 數(shù)字分類 給定一系列正整數(shù)惋鹅,請按要求對...
    dk_qi閱讀 646評論 0 5