亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

二維數組

2019-11-17 05:22:53
字體:
來源:轉載
供稿:網友

  5.2.1 二維數組的一般形式
C語言答應使用多維數組,最簡單的多維數組是二維數組。實際上,二維數組是以一維數組為元素構成的數組,要將d說明成大小為(1 0,2 0)的二維整型數組,可以寫成:
int d[10][20]
請留心上面的說明語句, C不像其它大多數計算機語言那樣使用逗號區分下標,而是用方
括號將各維下標括起,并且,數組的二維下標均從0計算。
與此相似,要存取數組d中下標為( 3,5)的元素可以寫成:
d [ 3 ] [ 5 ]
在例5 - 3中,整數1到1 2被裝入一個二維數組。
[例5 - 3 ]
main ( )
{
int t,i,n u m [ 3 ] [ 4 ]
for (t=0; t<3; ++t)
for (i=0;i<4;++i)
n u m [ t ] [ i ] = ( t * 4 ) + i + 1 ;
}
在此例中, n u m [ 0 ] [ 0 ]的值為1,n u m [ 0 ] [ 2 ]的值為3, . . . . . .,n u m [ 2 ] [ 3 ]的值為1 2。可以將
該數組想象為如下表格:
二維數組(圖一)
二維數組以行—列矩陣的形式存儲。第一個下標代表行,第二個下標代表列,這意味著
按照在內存中的實際存儲順序訪問數組元素時,右邊的下標比左邊的下標的變化快一些。圖
5 - 2是一個二維數組在內存中的情形,實際上,第一下標可以認為是行的指針。
記住,一旦數組被證實,所有的數組元素都將分配相應的存儲空間。對于二維數組可用
下列公式計算所需的內存字節數:
行數×列數×類型字節數=總字節數
因而,假定為雙字節整型,大小為( 1 0,5)的整型數組將需要:1 0×5×2=100 字節
當二維數組用作函數的參數時,實際上傳遞的是第一個元素(如[ 0 ] [ 0 ])的指針。不過該
函數至少得定義第二維的長度,這是因為C編譯程序若要使得對數組的檢索正確無誤,就需要
知道每一行的長度。例如,將要接收大小為( 1 0,1 0)的二維數組的函數,可以說明如下:
func1 (x)
int x[ ][10]
{
.
.
.
}
二維數組(圖二)
第一維的長度也可指明,但沒有必要。
C編譯程序對函數中的如下語句:
X [ 2 ] [ 4 ]
處理時,需要知道二維的長度。若行長度沒定義,那么它就不可能知道第三行從哪兒開
始。
[例5-4] 用一個二維數組存放某一教師任教的各班學生的分數。假定教師有三個班,每班
最多有三十名學生。注重各函數存取數組的方法。
#define classes 3
#define grades 30
#include <stdio.h>
main( )
{
void enter_grades();
void disp_grades( );
int get_grade( );
int a[classes] [grades];定/*義二維數組,每行存放一個班學生成績*/
char ch;
for( ; ;)
{
do { /*菜單顯示* /
printf("(R)eport grades/n");
p r i n t f ( " ( Q ) u i t / n " ) ;
ch=toupper(getchar()); /將*鍵盤輸入字符轉換為大寫*/
} while(ch!='E' && ch!='R' && ch!='Q');
switch(ch)
{
case 'E':
enter_grades( );
b r e a k ;
case 'R':
d i s p _ g r a d e s ( g r a d e ) ;
b r e a k ;
case 'Q':
e x i t ( 0 ) ;
}
}
}
void enter_grades(a)
int a[][grades];
{
int t, i;
for (t=0;t<classes;t++)
{
printf (" class #%d:/n",t+1);
for (i=0; i<grades; i++)
a [ t ] [ i ] = g e t _ g r a d e ( i ) ;
}
}
int get_grades(num)
int num;
{
char s[80];
printf("enter grade for student # %d:,/nn"u m + 1 ) ;
g e t s ( s ) ;/ *輸入成績* /
r e t u r n ( a t o i ( s ) ) ;
}
void disp_grades(g) /*顯示學生成績* /
int g[ ][grades];
{
int t,i ;
for(t=0; t<classes; ++t) {
printf("class # %d:/n,"t+ 1 ) ;
f o r ( i = 0 ; i < g r a d e s ; + + i )
printf("grade for student #%d is %d/,ni"+ 1 ,g[ t ] [ i ] ) ;
}
}
我們將實際問題簡化為共有2個班,每班兩個學生,即將程序中的常量定義修改如下:
#define classes 2
#define grades 2
運行程序:
R U N
(E)nter grades
(R)eport grades
( Q ) u i t : e
class #1:
enter grade for student #17:8
enter grade for student #289: ¿
class #2
enter grade for student #19:8 ¿
enter grade for student #29:0 ¿
(E)nter grades
(R)eport grades
( Q ) u i t : r¿
class #1
grade for student #1 is 78
grade for student #2 is 89
class #2
grade for student #1 is 98
grade for student #2 is 90
(E)nter grades
(R)eport grades
(Q)uit :q
運行程序,我們首先看到一個菜單,選擇“ e”輸入成績,選擇“ r”顯示成績,選擇“q”
退出。a t o i ( )函數用于將實參字符串轉換為整型。
5.2.2 字符串數組
程序設計中經常要用到字符串數組。例如,
數據庫的輸入處理程序就要將用戶輸入的命
令與存在字符串數組中的有效命令相比較,檢驗其有效性??捎枚S字符數組的形式建立字
符串數組,左下標決定字符串的個數,右下標說明串的最大長度。例如,下面的語句定義了
一個字符串數組,它可存放3 0個字符串,串的最大長度為8 0個字符:
char str_array[30][80];
要訪問單獨的字符串是很輕易的,只需標明左下標就可以了。例如,下面的語句以數組
s t r _ a r r a y中的第三個字符串為參數調用函數gets( )。
g e t s ( s t r _ a r r a y [ 2 ] ) ;
該語句在功能上等價于:
g e t s ( & s t r _ a r r a y [ 2 ] [ 0 ] ) ;
但第一種形式在專業程序員編制的C語言程序中更為常見。
為幫助理解字符串數組的用法,研究例5 - 5。它以一個字符串數組為基礎做簡單的文本編輯。
[例5 - 5 ]
#include <s t d i o . h >
#define MAX 100
#define LEN 80
char text [MAX][LEN]
/* 一個非常簡單的文本編輯器* /
main( )
{
register int t,i,j ;
for(t=0;t<MAX; t++) /*逐行輸入字符串* /
{
p r i n t f ( " % d : " ,t ) ;
g e t s ( t e x t [ t ] ) ;
if(! text[t][0])
break; /* 空行退出*/
}
f o r ( i = 0 ; i < t ,i++) /*按行,逐個字符輸出字符串* /
{
for(j=0; text [i][j];j++)
putchar(text [i][j]);
putchar( '/n');
}
}
該程序輸入文本行直至碰到一個空行為止,而后每次一個字符地重新顯示各行。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人在线一区| 国产一区二区三区网站| 午夜欧美大片免费观看| 欧美在线视频网| 欧美激情网站在线观看| 欧美激情精品久久久久久大尺度| 欧美成人精品一区二区| 国产极品jizzhd欧美| 国产精彩精品视频| 久久99国产精品自在自在app| 色婷婷成人综合| 亚洲精品天天看| 欧美网站在线观看| 欧美视频专区一二在线观看| 亚洲欧美日韩国产精品| 久久久99久久精品女同性| 九九九久久国产免费| www.亚洲男人天堂| 欧美丰满少妇xxxxx| 欧美日韩加勒比精品一区| 精品视频www| 亚洲成年人在线播放| 亚洲丝袜在线视频| 国产亚洲视频在线观看| 欧美午夜精品在线| 亚洲精品91美女久久久久久久| 日韩精品久久久久久福利| 欧美乱人伦中文字幕在线| 这里只有精品视频在线| 亚洲精品美女在线观看| 久久久精品国产一区二区| 97av在线视频| 中文字幕一区二区三区电影| 亚洲天堂影视av| 91精品国产综合久久久久久蜜臀| 美女扒开尿口让男人操亚洲视频网站| 日韩电影在线观看永久视频免费网站| 国产一区二区黄| 亚洲欧美国内爽妇网| 国产一区二区免费| 欧洲亚洲在线视频| 欧美极品少妇xxxxx| 国产69精品久久久久99| 国产精品免费久久久久影院| 欧美大片在线影院| 欧美麻豆久久久久久中文| 亚洲欧美日本另类| 久久国产精品久久久久久久久久| 欧美视频不卡中文| 狠狠综合久久av一区二区小说| 亚洲电影成人av99爱色| 国产精品海角社区在线观看| 午夜精品三级视频福利| 亚洲综合社区网| 96sao精品视频在线观看| 日韩在线观看电影| 91国在线精品国内播放| 日韩精品在线免费观看视频| 日韩精品在线观看视频| 中文字幕视频在线免费欧美日韩综合在线看| 国产精品激情av在线播放| 日韩在线视频国产| 亚洲国产精久久久久久久| 国产精品96久久久久久又黄又硬| 91亚洲精品久久久久久久久久久久| 亚洲精品电影在线观看| 国产欧美精品一区二区三区-老狼| 午夜精品福利视频| 国产剧情久久久久久| 日韩在线观看网址| 91国内精品久久| 黑人狂躁日本妞一区二区三区| 国产激情综合五月久久| 亚洲自拍偷拍一区| 国产精品1234| 亚洲乱码国产乱码精品精| 日韩电影免费观看在线观看| 日韩精品久久久久久久玫瑰园| 久久av资源网站| 在线视频欧美日韩| 欧美国产一区二区三区| 欧美午夜宅男影院在线观看| 国产在线观看精品一区二区三区| 青青草99啪国产免费| 亚洲国产天堂久久国产91| 欧美极品美女电影一区| 亚洲国产精品va在线| 日韩经典中文字幕| 日韩成人激情影院| 欧美成人午夜免费视在线看片| 国产精品视频xxx| 精品一区二区三区四区在线| 亚洲激情免费观看| 狠狠色狠狠色综合日日小说| 国产精品日韩一区| 成人免费黄色网| 久久久久国产一区二区三区| 日韩av在线免费看| 亚洲香蕉av在线一区二区三区| 国产精品青青在线观看爽香蕉| 欧美成在线视频| 精品国产91久久久久久老师| 日韩欧美成人免费视频| 国产欧美精品一区二区三区介绍| 91高清在线免费观看| 国产人妖伪娘一区91| 国产精品成人一区| 国产精品久在线观看| 欧美成人免费全部| 亚洲free性xxxx护士白浆| 国产亚洲精品久久久优势| 国产精品免费看久久久香蕉| 久久成人av网站| 色综合久久88色综合天天看泰| 亚洲精品网址在线观看| 538国产精品一区二区在线| 一区二区三区日韩在线| 欧美视频在线观看 亚洲欧| 国产成人在线精品| 欧美大秀在线观看| 在线播放国产一区中文字幕剧情欧美| 亚洲国产天堂久久国产91| 欧美一区在线直播| xxav国产精品美女主播| 91在线免费视频| 日本三级韩国三级久久| 在线观看国产精品淫| 国产成人在线一区二区| 国产精品黄页免费高清在线观看| 国产精品视频免费在线| 国产精品99久久久久久www| 91嫩草在线视频| 亚洲精品mp4| 日韩免费视频在线观看| 国产精品成人一区二区三区吃奶| 精品久久久视频| 精品高清一区二区三区| 美日韩精品视频免费看| 伊人久久大香线蕉av一区二区| 国产精品久久久91| 亚洲福利在线观看| 亚洲美女性生活视频| 欧美wwwwww| 欧美xxxwww| 国产不卡av在线| 不卡在线观看电视剧完整版| 久久精品成人欧美大片古装| 国产精品久久av| 亚洲欧美激情精品一区二区| 日韩中文在线不卡| 亚洲精品99久久久久中文字幕| 国产欧美欧洲在线观看| 亚洲第一区第一页| 色偷偷888欧美精品久久久| 亚洲电影免费观看高清| 麻豆精品精华液| 欧美在线免费观看| 国产99视频在线观看| 日本欧美一级片| 国产高清视频一区三区| 欧美亚州一区二区三区| 久久好看免费视频| 日韩av电影国产| 欧美在线中文字幕|