久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

多維數(shù)組

 fengbaoyang 2012-07-17
有時(shí),數(shù)組的維數(shù)并不止一維,,例如一個(gè)記錄消費(fèi)中心在第一季度里各個(gè)月的收入數(shù)據(jù)就可以用二維數(shù)組來(lái)表示。定義二維數(shù)組的方法是在一維數(shù)組定義的后面再加上一個(gè)用方括號(hào)括起來(lái)的維數(shù)說(shuō)明,。例如:
float array[3][8];
實(shí)際上,,這個(gè)數(shù)組可以看成3個(gè)連續(xù)的一維數(shù)組,每個(gè)一維數(shù)組具有8個(gè)元素,。該數(shù)組在內(nèi)存中的存儲(chǔ)格式為最左邊的維數(shù)相同的元素連續(xù)存儲(chǔ),,也即按行存儲(chǔ)的。首先存儲(chǔ)第一行8個(gè)元素,,其次是第二行,,最后是第三行。
main()
{
int array[3][3]={1,2,3,4,5,6,7,8,9};
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++) printf(%3d);
printf(\n);
}
}
它的輸出結(jié)果為:
1 2 3
4 5 6
7 8 9
可以看出,,二維數(shù)組元素是按行存儲(chǔ)的,。

我們也可以對(duì)數(shù)組進(jìn)行賦值,而不是初始化,。
main()
{
int array[3][3];
int i,j;
for(j=0;j<3;j++)
for(i=0;i<3;i++) scanf(%d,&array[i][j]);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++) printf(%3d);
printf(\n);
}
}
當(dāng)輸入1 2 3 4 5 6 7 8 9<回車(chē)>
輸出為:
1 4 7
2 5 8
3 6 9

數(shù)組可以是二維,、三維甚至是更高維數(shù)的,雖然C語(yǔ)言對(duì)維數(shù)的處理沒(méi)有上限,,但是處理高維數(shù)組是很頭疼的事,。一般盡量避免處理四維和四維以上的數(shù)組。下面看一個(gè)三維數(shù)組的例子:
main()
{
int array[2][3][4];
int i,j,k;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
for(k=0;k<4;k++) array[i][j][k]=i*12+j*4+k;
}
這個(gè)三維數(shù)組可以看成2個(gè)二維數(shù)組,,每個(gè)二維數(shù)組又可以看成3個(gè)一維數(shù)組,。可以在頭腦里想象成兩個(gè)平行平面,,每個(gè)平面內(nèi)有3*4個(gè)點(diǎn),。所以共有24個(gè)元素,。

二、字符串?dāng)?shù)組
上面講的都是存放數(shù)值的,,有一類數(shù)組,,用來(lái)處理字符串的,我們叫字符串?dāng)?shù)組,。其實(shí)字符串?dāng)?shù)組也是二維數(shù)組,,只是它的特殊性,才單獨(dú)拿出來(lái)說(shuō)的,。
main()
{
char s[10][10];
int i;
for(i=0;i<10;i++) scanf(%s,s[i]);
}

先看它的輸入特性,,前面在說(shuō)輸入語(yǔ)句的時(shí)候說(shuō)過(guò),遇到字符串輸入,,可以不加'&',,現(xiàn)在只要記住這個(gè)特性就可以,以后說(shuō)指針的時(shí)候再講為什么,。但是這兒為什么用s[i],,可能很多人不太明白。我們定義的是二維數(shù)組,,而輸入的時(shí)候,,卻使用一維數(shù)組的形式。這是因?yàn)樽址趦?nèi)存里地址可以用它的名字表示,,就好象這種形式:
main()
{
char s[10];
scanf(%s,s);
}
定義的是一維數(shù)組,,輸入語(yǔ)句用變量形式表示一樣。通過(guò)前面的'%s'形式可以看出,,s[i]是一個(gè)數(shù)組,,所以s就是二維數(shù)組了。
這里要注意一點(diǎn),,scanf()函數(shù)在輸入字符串時(shí)候不能支持空格,,看下面的例子:
main()
{
char s[3][10];
int i;
for(i=0;i<10;i++)
scanf(%s,s[i]);
for(i=0;i<3;i++)
printf(%s\n,s[i]);
}
我們輸入:1111
2222 3333
4444
我們是想把1111賦值給s[0],2222 3333賦值給s[1],4444賦值給s[2]??蓪?shí)際上編譯器是這樣做的,,把1111賦值給s[0],把2222賦值給[1],,把3333賦值給s[2],。
實(shí)際輸出:1111
2222
3333
在輸入字符串的時(shí)候,如果使用scanf(),,就把空格當(dāng)作下一個(gè)輸入了,。那么我們?cè)趺唇鉀Q這個(gè)問(wèn)題呢?畢竟很多情況下,一行字符串肯定有空格出現(xiàn)的,。我們使用新的函數(shù)gets(),。這個(gè)函數(shù)是專門(mén)接受字符串輸入的,它跳過(guò)了空格的影響,。把上面的輸入語(yǔ)言修改為gets(s[i])即可,。
我們定義了char s[3][10],超過(guò)10個(gè)字符肯定不行,,如果少于10個(gè)字符,,電腦怎么處理呢?電腦是在每個(gè)字符串的后面自動(dòng)補(bǔ)上'\0',,作為字符串的結(jié)束標(biāo)志,。
我們經(jīng)常在填寫(xiě)一些可選擇的內(nèi)容時(shí)經(jīng)常發(fā)現(xiàn),待選的字符串都是按字母排列好的,,我們?cè)趺从肅語(yǔ)言實(shí)現(xiàn)這個(gè)功能,?在C語(yǔ)言里,字符串的排序是按照字符的ASCII碼來(lái)的,,如果第一個(gè)字符一樣,,則比較第二個(gè),依次類推,。
main()
{
char s1[6]=addfgh,s2[5]=asdlg;
int i;
for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)
{
if(s1[i] {
printf(s1 exit(1);
}
else if(s1[i]>s2[i])
{
printf(s1>s2\n);
exit(1);
}
else ;
}
if(s1[i]=='\0' && s2[i]!='\0') printf(s1 else if(s2[i]=='\0' && s1[i]!='\0') printf(s1>s2\n);
else printf(s1==s2\n);
}

上面的例子就是比較兩個(gè)字符串大小的,,先比較第一個(gè),如果相同,,接著比較第二個(gè),如果不相同,,則分出大小,。一直往后比較,直到其中某一個(gè)到'\0',,你也可以先用strlen()函數(shù)找出最小的長(zhǎng)度,。
exit()函數(shù)的作用是退出程序,具體它的用法可以看看相關(guān)資料,。

其實(shí)C語(yǔ)言把我們經(jīng)常需要的字符串處理函數(shù)都做好了,,我們只需要調(diào)用它即可。如strcmp()用來(lái)比較,、strcpy()用來(lái)拷貝等等,。看看它們的用法:
#include string.h
main()
{
char s1[10],s2[10],s2[10];
int k;
gets(s1);
gets(s2);
k=strcmp(s1,s2); /*比較s1和s2大小*/
if(k==0) printf(s1==s2\n);
else if(k>0) printf(s1>s2\n);
else printf(s1 strcpy(s3,s1); /*把s1拷貝到s3*/
printf(%s\n,s3);
}

可以看出,,比較大小時(shí),,如果k<0,則s10,,則s1>s2;如果k=0,,則s1=s2。實(shí)際上這是一個(gè)函數(shù),,具體什么是函數(shù),,以及為什么寫(xiě)成那種形式,我們下節(jié)再說(shuō),。這些函數(shù)都包含在string.h頭文件中,,所以在程序的開(kāi)頭,都要寫(xiě)上#include string.h,。
字符串處理有很多函數(shù),,你們可以看看相關(guān)的書(shū),也可以看看Turbo C的幫助,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多