亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? caibook4.01

?? 介紹c語言的強勁手冊
?? 01
?? 第 1 頁 / 共 2 頁
字號:
數  組
數組    在程序設計中,為了處理方便, 把具有相同類型的若干變量按
有序的形式組織起來。
    這些按序排列的同類數據元素的集合稱為數組。在C語言中, 
數組屬于構造數據類型。一個數組可以分解為多個數組元素,這些
數組元素可以是基本數據類型或是構造類型。因此按數組元素的類
型不同,數組又可分為數值數組、字符數組、指針數組、結構數組
等各種類別。
    本章介紹數值數組和字符數組,其余的在以后各章陸續介紹。數組類型說明    在C語言中使用數組必須先進行類型說明。 數組說明的一般形
式為:    類型說明符 數組名 [常量表達式],……;      其中,類型說明符是任一種基本數據類型或構造數據類型。 數
組名是用戶定義的數組標識符。 方括號中的常量表達式表示數據元
素的個數,也稱為數組的長度。
例如:    int a[10];           說明整型數組a,有10個元素。
    float b[10],c[20];   說明實型數組b,有10個元素,實型
			  數組c,有20個元素。
    char ch[20];          說明字符數組ch,有20個元素。
對于數組類型說明應注意以下幾點:1.數組的類型實際上是指數組元素的取值類型。對于同一個數組,
  其所有元素的數據類型都是相同的。
2.數組名的書寫規則應符合標識符的書寫規定。
3.數組名不能與其它變量名相同,例如:    void main()
    { 
      int a;
      float a[10];
      ……
    }是錯誤的。4.方括號中常量表達式表示數組元素的個數,如a[5]表示數組a有
  5個元素。但是其下標從0開始計算。因此5個元素分別為a[0],a
  [1],a[2],a[3],a[4]。
5.不能在方括號中用變量來表示元素的個數, 但是可以是符號常數
  或常量表達式。例如:    #define FD 5
    void main()
    { 
      int a[3+2],b[7+FD];
      ……
    }是合法的。但是下述說明方式是錯誤的。    void main()
    { 
      int n=5;
      int a[n];
      ……
    }6.允許在同一個類型說明中,說明多個數組和多個變量。
    例如:    int a,b,c,d,k1[10],k2[20];
數組元素的表示方法
    
    數組元素是組成數組的基本單元。數組元素也是一種變量, 其
標識方法為數組名后跟一個下標。 下標表示了元素在數組中的順序
號。數組元素的一般形式為:    數組名[下標]      其中的下標只能為整型常量或整型表達式。如為小數時,C編譯
將自動取整。例如,a[5],a[i+j],a[i++]都是合法的數組元素。    數組元素通常也稱為下標變量。必須先定義數組, 才能使用下
標變量。在C語言中只能逐個地使用下標變量, 而不能一次引用整
個數組。    例如,輸出有10 個元素的數組必須使用循環語句逐個輸出各下
標變量:    for(i=0; i<10; i++)
    printf("%d",a[i]);    而不能用一個語句輸出整個數組,下面的寫法是錯誤的:    printf("%d",a);
void main()
{
  int i,a[10];
  for(i=0;i<10;)
      a[i++]=2*i+1;
  for(i=9;i>=0;i--)
      printf("%d",a[i]);
  printf("\n%d %d\n",a[5.2],a[5.8]);}    for(i=0;i<10;)
	a[i++]=2*i+1;    for(i=9;i>=0;i--)
	printf("%d",a[i]);    printf("\n%d %d\n",a[5.2],a[5.8]);    本例中用一個循環語句給a數組各元素送入奇數值,然后用第二
個循環語句從大到小輸出各個奇數。
    在第一個 for語句中,表達式3省略了。在下標變量中使用了表
達式i++,用以修改循環變量。當然第二個for語句也可以這樣作, 
C語言允許用表達式表示下標。 程序中最后一個printf語句輸出了
兩次a[5]的值, 可以看出當下標不為整數時將自動取整。數組的賦值
    給數組賦值的方法除了用賦值語句對數組元素逐個賦值外, 還
可采用初始化賦值和動態賦值的方法。數組初始化賦值
    數組初始化賦值是指在數組說明時給數組元素賦予初值。 數組
初始化是在編譯階段進行的。這樣將減少運行時間,提高效率。
    初始化賦值的一般形式為:    static 類型說明符 數組名[常量表達式]={值,值……值};      其中static表示是靜態存儲類型, C語言規定只有靜態存儲數
組和外部存儲數組才可作初始化賦值(有關靜態存儲,外部存儲的概
念在第五章中介紹)。在{ }中的各數據值即為各元素的初值, 各值
之間用逗號間隔。例如:    static int a[10]={ 0,1,2,3,4,5,6,7,8,9 };    相當于a[0]=0;a[1]=1...a[9]=9;
C語言對數組的初始賦值還有以下幾點規定:1.可以只給部分元素賦初值。當{ }中值的個數少于元素個數時,只
  給前面部分元素賦值。例如:    static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而后5個元素自動賦0值。2.只能給元素逐個賦值,不能給數組整體賦值。 例如給十個元素全
  部賦1值,只能寫為:    static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:    static int a[10]=1;
3.如不給可初始化的數組賦初值,則全部元素均為0值。4.如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個
  數。例如:    static int a[5]={1,2,3,4,5};可寫為:    static int a[]={1,2,3,4,5};動態賦值
    可以在程序執行過程中,對數組作動態賦值。 這時可用循環語
句配合scanf函數逐個對數組元素賦值。void main()
{
  int i,max,a[10];
  printf("input 10 numbers:\n");
  for(i=0;i<10;i++)
      scanf("%d",&a[i]);
  max=a[0];
  for(i=1;i<10;i++)
      if(a[i]>max) max=a[i];
  printf("maxmum=%d\n",max);
}
    for(i=0;i<10;i++)
	scanf("%d",&a[i]);
    max=a[0];
    for(i=1;i<10;i++)
	if(a[i]>max) max=a[i];
    printf("maxmum=%d\n",max);
    本例程序中第一個for語句逐個輸入10個數到數組a中。 然后把
a[0]送入max中。在第二個for語句中,從a[1]到a[9]逐個與max中的
內容比較,若比max的值大,則把該下標變量送入max中,因此max總
是在已比較過的下標變量中為最大者。比較結束,輸出max的值。
void main()
{
  int i,j,p,q,s,a[10];
  printf("\n input 10 numbers:\n");
  for(i=0;i<10;i++)
      scanf("%d",&a[i]);
  for(i=0;i<10;i++){
      p=i;q=a[i];
      for(j=i+1;j<10;j++)
	  if(q<a[j]) { p=j;q=a[j]; }
      if(i!=p)
        {s=a[i];
         a[i]=a[p];
         a[p]=s; }
      printf("%d",a[i]);
  }
}
    for(i=0;i<10;i++)
	scanf("%d",&a[i]);
    for(i=0;i<10;i++){
	p=i;q=a[i];
	for(j=i+1;j<10;j++)
	    if(q<a[j]) { p=j;q=a[j]; }
	if(i!=p)
	{ s=a[i];
	  a[i]=a[p];
	  a[p]=s; }
	printf("%d",a[i]);
    }    本例程序中用了兩個并列的for循環語句,在第二個for 語句中
又嵌套了一個循環語句。第一個for語句用于輸入10個元素的初值。
第二個for語句用于排序。本程序的排序采用逐個比較的方法進行。
在i次循環時,把第一個元素的下標i賦于p,而把該下標變量值a[i]
賦于q。然后進入小循環,從a[i+1]起到最后一個元素止逐個與a[i]
作比較,有比a[i]大者則將其下標送p,元素值送q。 一次循環結束
后,p即為最大元素的下標,q則為該元素值。若此時i≠p,說明p,q
值均已不是進入小循環之前所賦之值,則交換a[i]和a[p]之值。 此
時a[i]為已排序完畢的元素。輸出該值之后轉入下一次循環。對i+1
以后各個元素排序。
二維數組
    前面介紹的數組只有一個下標,稱為一維數組, 其數組元素也
稱為單下標變量。在實際問題中有很多量是二維的或多維的, 因此
C語言允許構造多維數組。多維數組元素有多個下標, 以標識它在
數組中的位置,所以也稱為多下標變量。 本小節只介紹二維數組,
多維數組可由二維數組類推而得到。二維數組類型說明
    二維數組類型說明的一般形式是:    類型說明符 數組名[常量表達式1][常量表達式2]…;      其中常量表達式1表示第一維下標的長度,常量表達式2 表示第
二維下標的長度。例如:    int a[3][4];    說明了一個三行四列的數組,數組名為a,其下標變量的類型為
整型。該數組的下標變量共有3×4個,即:    a[0][0],a[0][1],a[0][2],a[0][3]
    a[1][0],a[1][1],a[1][2],a[1][3]
    a[2][0],a[2][1],a[2][2],a[2][3]
    二維數組在概念上是二維的,即是說其下標在兩個方向上變化,
下標變量在數組中的位置也處于一個平面之中, 而不是象一維數組
只是一個向量。但是,實際的硬件存儲器卻是連續編址的, 也就是
說存儲器單元是按一維線性排列的。 如何在一維存儲器中存放二維
數組,可有兩種方式:一種是按行排列, 即放完一行之后順次放入
第二行。另一種是按列排列, 即放完一列之后再順次放入第二列。
在C語言中,二維數組是按行排列的。    在圖4.1中,按行順次存放,先存放a[0]行,再存放a[1]行,最
后存放a[2]行。每行中有四個元素也是依次存放。由于數組a說明為
int類型,該類型占兩個字節的內存空間,所以每個元素均占有兩個
字節(圖中每一格為一字節)。
二維數組元素的表示方法
    二維數組的元素也稱為雙下標變量,其表示的形式為:    數組名[下標][下標]      其中下標應為整型常量或整型表達式。例如:    a[3][4] 表示a數組三行四列的元素。下標變量和數組說明在形
式中有些相似,但這兩者具有完全不同的含義。 數組說明的方括號
中給出的是某一維的長度,即可取下標的最大值; 而數組元素中的
下標是該元素在數組中的位置標識。前者只能是常量, 后者可以是
常量,變量或表達式。
    一個學習小組有5個人,每個人有三門課的考試成績。求全組分
科的平均成績和各科總平均成績。    課程    成績姓名    MathCDBASE
    張807592
    王616571
    李596370
    趙858790
    周767785    可設一個二維數組a[5][3]存放五個人三門課的成績。再設一個
一維數組v[3]存放所求得各分科平均成績,設變量l為全組各科總平
均成績。編程如下:
void main()
{
  int i,j,s=0,l,v[3],a[5][3];
  printf("input score\n");
  for(i=0;i<3;i++){
      for(j=0;j<5;j++)
	  { scanf("%d",&a[j][i]);
	    s=s+a[j][i];}
      v[i]=s/5;
      s=0;
     }
  l=(v[0]+v[1]+v[2])/3;
  printf("math:%d\nc languag:%d\ndbase:%d\n",v[0],v[1],v[2]);
  printf("total:%d\n",l);
}  for(i=0;j<3;i++)
      for(j=0;j<5;j++)
	  { scanf("%d",&a[j][i]);
	    s=s+a[j][i];}
      v[i]=s/5;
      s=0;
     }
  l=(v[0]+v[1]+v[2])/3;    程序中首先用了一個雙重循環。 在內循環中依次讀入某一門課
程的各個學生的成績,并把這些成績累加起來, 退出內循環后再把
該累加成績除以5送入v[i]之中,這就是該門課程的平均成績。外循
環共循環三次,分別求出三門課各自的平均成績并存放在v數組之中。
退出外循環之后,把v[0],v[1],v[2]相加除以3即得到各科總平均成
績。最后按題意輸出各個成績。二維數組的初始化
    二維數組初始化也是在類型說明時給各下標變量賦以初值。 二
維數組可按行分段賦值,也可按行連續賦值。    例如對數組a[5][3]:    1.按行分段賦值可寫為
    static int a[5][3]={ {80,75,92},{61,65,71},{59,63,70},
			 {85,87,90},{76,77,85} };    2.按行連續賦值可寫為
    static int a[5][3]={ 80,75,92,61,65,71,59,63,70,85,87,
			 90,76,77,85 };    這兩種賦初值的結果是完全相同的。
void main()
{
  int i,j,s=0,l,v[3];
  static int a[5][3]={ {80,75,92},{61,65,71},{59,63,70},
		       {85,87,90},{76,77,85} };
  for(i=0;i<3;i++)
      { for(j=0;j<5;j++)
	    s=s+a[j][i];
	v[i]=s/5;
	s=0;
      }
  l=(v[0]+v[1]+v[2])/3;
  printf("math:%d\nc languag:%d\ndbase:%d\n",v[0],v[1],v[2]);
  printf("total:%d\n",l);
 }
對于二維數組初始化賦值還有以下說明:    1.可以只對部分元素賦初值,未賦初值的元素自動取0值。
    例如:    static int a[3][3]={{1},{2},{3}};    是對每一行的第一列元素賦值,未賦值的元素取0值。 賦值后各
元素的值為:    1 0 02 0 03 0 0 
    static int a [3][3]={{0,1},{0,0,2},{3}};    賦值后的元素值為    0 1 00 0 23 0 0 
    2.如對全部元素賦初值,則第一維的長度可以不給出。
    例如:    static int a[3][3]={1,2,3,4,5,6,7,8,9};    可以寫為:
    static int a[][3]={1,2,3,4,5,6,7,8,9};       數組是一種構造類型的數據。 二維數組可以看作是由一維數組
的嵌套而構成的。設一維數組的每個元素都又是一個數組, 就組成
了二維數組。當然,前提是各元素類型必須相同。根據這樣的分析,
一個二維數組也可以分解為多個一維數組。 C語言允許這種分解有
二維數組a[3][4],可分解為三個一維數組,其數組名分別為a[0],
a[1],a[2]。對這三個一維數組不需另作說明即可使用。這三個一維
數組都有4個元素,例如:一維數組a[0]的元素為a[0][0],a[0][1],
a[0][2],a[0][3]。必須強調的是,a[0],a[1],a[2]不能當作下標變
量使用,它們是數組名,不是一個單純的下標變量。字符數組
    用來存放字符量的數組稱為字符數組。 字符數組類型說明的形
式與前面介紹的數值數組相同。例如:    char c[10];    由于字符型和整型通用,也可以定義為int c[10]但這時每個數
組元素占2個字節的內存單元。
    字符數組也可以是二維或多維數組,例如:    char c[5][10];即為二維字符數組。    字符數組也允許在類型說明時作初始化賦值。例如:    static char c[10]={`c`,` `,`p`,`r`,o`,g`,r`,`a`,`m`};
    賦值后各元素的值為:    數組C    c[0]c[1]c[2]c[3]c[4]c    [5]c[6]c[7]c[8]c[9]其中c[9]未賦值,由系統自動賦予0值。    當對全體元素賦初值時也可以省去長度說明。例如:    static char c[]={`c`,` `,`p`,`r`,`o`,`g`,`r`,`a`,`m`};這時C數組的長度自動定為9。
main()
{
  int i,j;
  char a[][5]={{'B','A','S','I','C',},{'d','B','A','S','E'}};
  for(i=0;i<=1;i++)
    {
      for(j=0;j<=4;j++)
          printf("%c",a[i][j]);
      printf("\n");
    }
}
    本例的二維字符數組由于在初始化時全部元素都賦以初值, 因
此一維下標的長度可以不加以說明。字符串
    在C語言中沒有專門的字符串變量, 通常用一個字符數組來存
放一個字符串。在2.1.4節介紹字符串常量時,已說明字符串總是以
'\0'作為串的結束符。因此當把一個字符串存入一個數組時, 也把
結束符'\0'存入數組,并以此作為該字符串是否結束的標志。 有了
'\0'標志后,就不必再用字符數組的長度來判斷字符串的長度了。
C語言允許用字符串的方式對數組作初始化賦值。例如:    static char c[]={'c', ' ','p','r','o','g','r','a','m'};    可寫為:
    static char c[]={"C program"};    或去掉{}寫為:
    sratic char c[]="C program";
    用字符串方式賦值比用字符逐個賦值要多占一個字節, 用于存
放字符串結束標志'\0'。上面的數組c在內存中的實際存放情況為:    C program\0
    `\0'是由C編譯系統自動加上的。由于采用了`\0'標志,所以在
用字符串賦初值時一般無須指定數組的長度, 而由系統自行處理。
在采用字符串方式后,字符數組的輸入輸出將變得簡單方便。 除了
上述用字符串賦初值的辦法外,還可用printf函數和scanf函數一次

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久福利| a美女胸又www黄视频久久| 亚洲一区二区在线播放相泽| 亚洲欧洲日产国码二区| 国产精品色一区二区三区| 国产精品传媒入口麻豆| 中文字幕亚洲精品在线观看| 中文字幕一区在线观看| 亚洲欧美另类小说视频| 亚洲午夜久久久久中文字幕久| 亚洲第一狼人社区| 日本女优在线视频一区二区| 国内外成人在线视频| 国产一区二区三区在线观看精品| 国产成人啪免费观看软件| 成人app下载| 欧美手机在线视频| 欧美精品一区二区三区蜜桃| 国产三级精品三级在线专区| 中文字幕在线播放不卡一区| 亚洲午夜三级在线| 国产精品亚洲专一区二区三区| 成人免费毛片aaaaa**| 一本色道久久综合亚洲91| 欧美日韩成人综合在线一区二区| 精品av久久707| 中文字幕一区二区三区色视频| 亚洲国产精品欧美一二99| 九九久久精品视频| 一本到不卡精品视频在线观看| 欧美一区二区三级| 欧美国产欧美综合| 日韩电影在线一区二区三区| 国产精品一二一区| 777亚洲妇女| 国产精品久久综合| 老色鬼精品视频在线观看播放| 不卡大黄网站免费看| 欧美日韩高清一区二区三区| 欧美激情一区二区在线| 奇米777欧美一区二区| aaa亚洲精品| 2021国产精品久久精品 | 免费看欧美美女黄的网站| 国产成人在线视频网址| 欧美日韩另类国产亚洲欧美一级| 久久久久青草大香线综合精品| 亚洲一区二区av在线| 成人永久aaa| 日韩美女视频一区二区在线观看| 亚洲人成精品久久久久久 | 国产精品每日更新在线播放网址 | 久久久久久久av麻豆果冻| 亚洲国产精品一区二区久久恐怖片 | 欧美日韩在线播| 国产欧美1区2区3区| 蜜桃精品视频在线| 欧美亚洲综合另类| 亚洲精品国产a| 91网站最新地址| 国产免费观看久久| 国产高清精品网站| 久久久久久麻豆| 久久国产夜色精品鲁鲁99| 欧美电影在哪看比较好| 亚洲成人av福利| 欧美体内she精高潮| 亚洲一级在线观看| 日本乱人伦aⅴ精品| 亚洲精品成人天堂一二三| 91啪亚洲精品| 亚洲日本护士毛茸茸| 99久久婷婷国产精品综合| 中文无字幕一区二区三区| 国产乱理伦片在线观看夜一区 | 国产**成人网毛片九色| 国产亚洲1区2区3区| 粉嫩一区二区三区在线看| 国产欧美日韩在线视频| 丁香啪啪综合成人亚洲小说 | 国产精品久久影院| 91香蕉国产在线观看软件| 亚洲乱码日产精品bd| 色哟哟一区二区| 亚洲a一区二区| 日韩视频永久免费| 国产精品系列在线观看| 国产精品久久久久久久午夜片| 成人毛片视频在线观看| 亚洲欧美视频在线观看| 欧美女孩性生活视频| 久久疯狂做爰流白浆xx| 国产女人aaa级久久久级 | 国产欧美综合色| 99国产精品国产精品毛片| 亚洲午夜精品久久久久久久久| 在线成人午夜影院| 美洲天堂一区二卡三卡四卡视频| 久久久久久久久久久电影| 99久久精品久久久久久清纯| 亚洲成av人片www| 26uuu国产日韩综合| 色综合网色综合| 奇米精品一区二区三区在线观看| 日本一区二区三区视频视频| 欧美在线视频你懂得| 毛片av中文字幕一区二区| 1024亚洲合集| 精品国产一二三区| 91视频你懂的| 精品无人区卡一卡二卡三乱码免费卡| 中文av一区二区| 日韩欧美国产综合| 色综合久久综合| 国产精品一区二区三区乱码| 一区二区三区欧美激情| 日韩欧美黄色影院| 91成人网在线| youjizz久久| 久久黄色级2电影| 亚洲国产美女搞黄色| 国产精品国模大尺度视频| 日韩你懂的电影在线观看| 日本韩国一区二区三区视频| 国产精品123| 国内精品久久久久影院薰衣草 | 爽爽淫人综合网网站 | 欧美视频在线一区| 成人免费电影视频| 国产自产2019最新不卡| 日韩高清国产一区在线| 亚洲另类在线一区| 国产精品久久久久影院亚瑟| 精品少妇一区二区三区免费观看| 欧美午夜精品一区二区三区| av亚洲精华国产精华精| 国产 欧美在线| 国产经典欧美精品| 激情图片小说一区| 精品一二三四区| 美女在线视频一区| 人人精品人人爱| 日韩精品亚洲专区| 午夜a成v人精品| 午夜日韩在线电影| 亚洲va欧美va人人爽| 一区二区三区四区在线免费观看| 中文字幕精品一区| 国产精品另类一区| 最新不卡av在线| 最近中文字幕一区二区三区| 国产精品不卡在线| 自拍偷拍国产亚洲| 亚洲精选视频免费看| 一区二区三区自拍| 亚洲国产精品嫩草影院| 亚洲成人久久影院| 亚洲国产精品麻豆| 日韩av电影一区| 久久成人免费日本黄色| 国产一区二区精品久久| 顶级嫩模精品视频在线看| 99在线视频精品| 欧洲亚洲国产日韩| 91精选在线观看| 精品少妇一区二区| 国产精品福利av| 一区二区三区**美女毛片| 香蕉乱码成人久久天堂爱免费| 亚洲国产日韩综合久久精品| 日本成人在线看| 国产a久久麻豆| 91福利国产成人精品照片| 欧美一三区三区四区免费在线看| 日韩欧美精品三级| 国产精品久久福利| 亚洲国产日韩精品| 国产精品888| 一本色道久久综合精品竹菊| 欧美一区二区三区小说| 久久五月婷婷丁香社区| 中文字幕一区二区三区不卡| 日韩精品欧美精品| 国产成人免费视| 欧美色图激情小说| 国产亚洲1区2区3区| 亚洲综合成人在线| 国产成人精品1024| 欧美日韩一区 二区 三区 久久精品| 日韩午夜在线播放| 亚洲欧美激情小说另类| 久热成人在线视频| 欧美曰成人黄网| 欧美极品aⅴ影院| 日本少妇一区二区| 色综合天天做天天爱| 国产偷国产偷精品高清尤物| 亚洲午夜激情av| 成人福利电影精品一区二区在线观看| 51午夜精品国产|