C程序設(shè)計(jì)語(yǔ)言 1.6 數(shù)組

在這部分,我們來(lái)編寫(xiě)一個(gè)程序,已統(tǒng)計(jì)各個(gè)數(shù)字、空白符(包括空格符、制表符及換行符)以及所有其他字符出現(xiàn)的次數(shù)。
在統(tǒng)計(jì)數(shù)字出現(xiàn)的次數(shù)時(shí),我們使用一個(gè)數(shù)組存放各個(gè)數(shù)字出現(xiàn)的次數(shù),這樣比10個(gè)獨(dú)立的變量更加方便。如下:

#include <stdio.h>
/* count digits, white space, others */
int main()
{
  int c, i, nwhite, nother;
  int ndigit[10];
  nwhite = nother = 0;
  for (i = 0; i < 10; ++i)
    ndigit[i] = 0;//初始化
  while ((c = getchar()) != EOF)
    if (c >= '0' && c <= '9')
      ++ndigit[c - '0'];
    else if (c == ' ' || c == '\n' || c == '\t')
      ++nwhite;
    else
      ++nother;
  printf("digits =");
  for (i = 0; i < 10; ++i)
    printf(" %d", ndigit[i]);
  printf(", white space = %d, other = %d\n",nwhite, nother);
  return 0;
}

當(dāng)把這段程序本身作為輸入時(shí),輸出結(jié)果為:

digits = 9 3 0 0 0 0 0 0 0 1, white space = 123, other = 345

該程序中的聲明語(yǔ)句
int ndigit[10]
意為聲明一個(gè)由10個(gè)整形數(shù)組成的數(shù)組,[]在變量名后意為數(shù)組,其中的數(shù)字為這個(gè)數(shù)組所能存放元素的個(gè)數(shù)。在C語(yǔ)言中,數(shù)組下標(biāo)總是從0開(kāi)始,ndigit[0]表示數(shù)組中的第一個(gè)元素,ndigit[1]表示數(shù)組中的第二個(gè)元素,以此類(lèi)推,這可以通過(guò)初始化和打印數(shù)組的兩個(gè)for循環(huán)反應(yīng)出來(lái)。
數(shù)組下標(biāo)可以是任何整形表達(dá)式,包括整形變量及整形常量

if (c >= '0' && c <= '9')

用于判斷c中的字符是否為數(shù)字。如果是數(shù)字,那么對(duì)應(yīng)是數(shù)的計(jì)算方式為:

c - '0'

如果c中存儲(chǔ)的字符是'0''9',其值將為09,下標(biāo)剛好和數(shù)值對(duì)應(yīng)起來(lái)。
判斷一個(gè)字符是數(shù)字、空白符還是其他字符的功能由下列語(yǔ)句序列完成:

if (c >= '0' && c <= '9')
  ++ndigit[c - '0'];
else if (c == ' ' || c == '\n' || c == '\t')
  ++nwhite;
else
  ++nother;

程序中經(jīng)常使用下列方式表示多路判定:

if (條件 1)
語(yǔ)句 1
else if (條件 2)
語(yǔ)句 2
...
...
else
語(yǔ)句 n

這種語(yǔ)句從前往后依次求值,直到滿足某個(gè)條件,然后執(zhí)行對(duì)應(yīng)的部分,語(yǔ)句執(zhí)行結(jié)束。其中的語(yǔ)句可以為單條語(yǔ)句也可以為大括號(hào)括起來(lái)的多條語(yǔ)句。如果所有條件都不滿足,則執(zhí)行位于最后一個(gè)else之后的語(yǔ)句(如果有的話)。在第三章中,我們將學(xué)習(xí)多路分支的另外一種方式,switch語(yǔ)句。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 版權(quán)聲明:本文為 gfson 原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處。注:作者水平有限,文中如有不恰當(dāng)之處,請(qǐng)予以指正,萬(wàn)分感謝...
    gfson閱讀 3,495評(píng)論 0 6
  • 指針是C語(yǔ)言中廣泛使用的一種數(shù)據(jù)類(lèi)型。 運(yùn)用指針編程是C語(yǔ)言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,615評(píng)論 3 44
  • C語(yǔ)言大總結(jié) 一、基礎(chǔ): 1、進(jìn)制、位權(quán)、1字節(jié)等于8位(位是計(jì)算機(jī)的最小儲(chǔ)存單位,字節(jié)是計(jì)算機(jī)最小存儲(chǔ)單元)、十...
    霧中探雪閱讀 2,938評(píng)論 1 36
  • 數(shù)組在程序設(shè)計(jì)中,為了處理方便, 把具有相同類(lèi)型的若干變量按有序的形式組織起來(lái)。這些按序排列的同類(lèi)數(shù)據(jù)元素的集合稱(chēng)...
    朱森閱讀 4,272評(píng)論 2 13
  • 這是兩家很有意思的超市, 其中一家,德國(guó)阿爾迪(ADLI)超市,外界對(duì)這家超市的印象是神秘且低調(diào),公司禁止高管接受...
    白_明閱讀 3,368評(píng)論 1 6

友情鏈接更多精彩內(nèi)容