c语言中void arrout,c语言学习笔记(数组、函数
《c語(yǔ)言學(xué)習(xí)筆記(數(shù)組、函數(shù)》由會(huì)員分享,可在線閱讀,更多相關(guān)《c語(yǔ)言學(xué)習(xí)筆記(數(shù)組、函數(shù)(53頁(yè)珍藏版)》請(qǐng)?jiān)谌巳宋膸?kù)網(wǎng)上搜索。
1、數(shù)組2010-3-29 22:40一維數(shù)組的定義和一維數(shù)組的引用內(nèi)存中一串連續(xù)的存儲(chǔ)單元(變量),叫數(shù)組。指針移動(dòng)和比較只有在一串連續(xù)的數(shù)組中才有意義。當(dāng)數(shù)組中每個(gè)變量只帶一個(gè)下標(biāo)時(shí),為一維數(shù)組。定義一個(gè)一維數(shù)組:類型名 數(shù)組名【常量表達(dá)式】 如:int a8;說明: 定義一個(gè)一維整型名為a的數(shù)組。方括號(hào)中規(guī)定此數(shù)組有8個(gè)元素,(a【0】-a【7】),不存在a【8】這個(gè)元素。a數(shù)組中每個(gè)元素均為整型,且每個(gè)元素只能存放整型。每個(gè)元素只有一個(gè)下標(biāo),且第一個(gè)元素的下標(biāo)總為0。c編譯程序,為a數(shù)組開辟8個(gè)連續(xù)存儲(chǔ)單元。3)在定義數(shù)組語(yǔ)句中,可以有多個(gè)數(shù)組說明符;它們用逗號(hào)隔開。例:double a【。
2、22】,v【100】,u【5】,a,b,c; 注:雙精度型 每個(gè)單元占用8個(gè)字節(jié)的存儲(chǔ)空間。另外,也可以和普通變量一起定義。用逗號(hào)分隔開。2010-3-23 10:29 一維數(shù)組元素的引用21)引用形式:數(shù)組名 【下標(biāo)表達(dá)式】可以是:常量,變量,表達(dá)式。如:double x【8】 則 x【0】 x【j】 x【i+k】均合法2)(1)一個(gè)數(shù)組元素實(shí)際上就是一個(gè)變量名,代表內(nèi)存中的一個(gè)存儲(chǔ)單元。我們可以把數(shù)組元素看做一個(gè)變量名來處理。(2)一個(gè)數(shù)組不能整體引用,數(shù)組名中存放的是一個(gè)地址常量,它代表整個(gè)數(shù)組的首地址。當(dāng)學(xué)習(xí)指針時(shí),引用的變量的地址,就是變量中第一個(gè)字節(jié)的地址。數(shù)組的首地址也是它的第一。
3、個(gè)元素的第一個(gè)字節(jié)的地址,即它的首地址。數(shù)組的首地址存放在數(shù)組名中。所以說,數(shù)組名就代表一個(gè)地址。數(shù)組名是一個(gè)地址值。(3)在引用數(shù)組元素時(shí),數(shù)組元素下標(biāo)表達(dá)式必須是整數(shù),下標(biāo)表達(dá)式下限為0.系統(tǒng)并不自動(dòng)檢驗(yàn)數(shù)組元素下標(biāo)是否越界,因此編程時(shí)要注意。如:double a,b; int c10;a=2.0;b=3.0;則ai; 是不合法的。給數(shù)組賦初值時(shí),如果所賦初值少于元素個(gè)數(shù)時(shí),后面的元素補(bǔ)為0,字符補(bǔ)為0可以通過賦初值來定義一個(gè)數(shù)組的大小。如:int a=0,0,0,0,0; 相當(dāng)于:a5=0;一維數(shù)組的初始化void main()int i,j,a30;for (i=0,j=1;i=0;i。
4、-)printf(“%d, ”,ai);if (i%10=0) printf(“n”); /*先輸出第i=20這個(gè)元素,再輸入回車。*/getch(); /2010年10月14日14:43:15 上次是怎么做的啊,錯(cuò)了那么多。1一維數(shù)組和數(shù)組元素的地址1)數(shù)組和指針的比較(1)指針變量的地址:指向內(nèi)存中一個(gè)存儲(chǔ)單元的第一個(gè)字節(jié)的地址。數(shù)組名的地址值,就是該數(shù)組的第一個(gè)元素的第一個(gè)字節(jié)的地址。(2)指針變量有基類型,相當(dāng)于數(shù)組的類型名。(3)指針變量的地址值不可改變,即指針變量指向的存儲(chǔ)單元的地址值是固定的,不可改變,如int *p,a;p=&a;則變量a的地址是不可改變的。也不可給數(shù)組名的地址。
5、重新賦值。如數(shù)組名為a的數(shù)組:a=&x;或a+等給數(shù)組名重新賦值都是錯(cuò)誤的。一旦定義,a永遠(yuǎn)指向a數(shù)組的首地址。(4)雖然不可改變a的內(nèi)容(地址),但可以對(duì)數(shù)組名加一個(gè)整數(shù)的辦法,來依次表達(dá)該數(shù)組中不同元素的地址。如:a 代表 &a【0】數(shù)組的首地址,也是a0的地址 /首地址a+1 代表 &a【1】數(shù)組元素a1的地址 /在指針中,1代表一個(gè)存儲(chǔ)單元a+2 代表 &a【2】. /注意:不是a=a+1,而是 a+1例:main()int a10,*p,x,k;for(k=0;k=0)i+;scanf(%d,&ai);return i;arrout(int *a,int n)int i;for(i=。
6、0;i=0)i+;scanf(%d,a+i);return i;int output(int *a,int n)int i;for(i=0;i=0)i+;scanf(%d,a+i);if(aimain()int i,a,b,h,sum=0;for(i=0;i0;i-)for(j=0;jgetdate(int *a,int n)int i;for(i=0;i5) printf(no);main()int a5=1,2,3,4,5,n=6;fun(a,n);getch();二看視頻后模仿做的int getin(int *a)int i,n;doprintf(please input 1 and 3。
7、0);for(i=0;i=n) p=-1;else p=i;return p;main()int a30,x,n,p;n=getin(a);scanf(%d,&x);p=fun(a,x,n);if(p!=-1) printf(x=%d,p=%dn,x,p);else printf(NO);getch();2010年10月19日22:36:38 自己又做了一遍,和金文老師的程序比起來,還是差了不少啊。int arrout(int *a,int n)int i;for(i=0;i=n) printf(NO);int main()int n,x,a5=1,2,3,4,5;arrout(a,5);sc。
8、anf(%d,&x);search(a,x,5);getch();函數(shù)之間對(duì)一維數(shù)組和一維數(shù)組的元素的引用及一維數(shù)組實(shí)例8 2010 4.10w數(shù)組中存放著n個(gè)數(shù)據(jù),編寫函數(shù)實(shí)現(xiàn)刪除下標(biāo)為k的元素中的值arrout(int *a,int n)int i;for(i=0;i30);return i;int arrdel(int *a,int n,int m)int i;for(i=n;i30);return i;int arrin(int *a,int n)int i;for(i=0;ivoid arrout(int *a,int n)int i;for(i=0;ivoid arrout(int。
9、 *a,int n)int i;for(i=0;in;i+)printf(%d,ai);printf(n);search(int *a)int i,j,temp,p,m=0,n=0;for(j=0;j4;j+)p=j;for(i=j+1;i5;i+)if(aiap) p=i;if(p!=j) /*如果當(dāng)前值不等于最小值時(shí),才交換*/temp=ai;ai=aj;aj=temp;m+; /*此處錯(cuò)了,應(yīng)該是:temp=aj;aj=ap;ap=temp;*/n+;printf(xun huan ci shu: %dn,n);printf(jiao huan ci shu: %dn,m);void m。
10、ain()int a5=8,1,1,1,8;arrout(a,5);search(a);arrout(a,5);getch();/*此程序不對(duì),但我又是半年沒有接觸C語(yǔ)言了,所以生疏了,還沒看出錯(cuò)誤2010.9.24晚11:40。*/2010年10月21日22:04:46 從昨天晚上,到今天晚上整整24小時(shí),包括白天,上課之余都在想,實(shí)驗(yàn)這個(gè)“選擇排序法”,今晚上終于成功了,明白了。上面的程序?yàn)槭裁床粚?duì)也搞清楚了。O(_)O。(算法的核心是:找一個(gè)中間的變量,記住最大的或最小的元素,當(dāng)比完一輪后,在外層循環(huán)將這個(gè)最大的或最小的數(shù)和每一輪的最前面一個(gè)數(shù)交換。它相比冒泡排序,交換的次數(shù)少了。選擇排。
11、序是一個(gè)不穩(wěn)定的排序算法?,還要在學(xué)習(xí),還有什么“程序的復(fù)雜性分析.等等也是要學(xué)習(xí)”)#include stdio.hint main()int a10;arrin(a,10);arrout(a,10);paixu(a,10);printf(paixu jieshu,zhunbei shuchu.n);arrout(a,10);getch();int arrin(int *a,int n)int i;srand(unsigned)time(NULL);for(i=0;in;i+)ai=rand()%10;arrout(int *a,int n)int i;for(i=0;in;i+)print。
12、f(%d ,ai);printf(n);paixu(int *a,int n)int i,j,k,t;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(ajak) k=j;if(k!=i) t=ak;ak=ai;ai=t;、!、 2010年10月27日22:30:16學(xué)完了一維數(shù)組了,進(jìn)度還是太慢,學(xué)完了還想多做幾道習(xí)題。可翻開譚老頭的書,卻是一維數(shù)組和二維數(shù)組混編的題目,從網(wǎng)上找了個(gè)什么“猴子大王”的什么題,也沒有頭緒,是純算法的題啊,所以,先放放。不過,我做了一個(gè)用篩法求素?cái)?shù)的程序,一開始做不出,是參考了譚老頭的書后,學(xué)會(huì)的。(源程序以后補(bǔ)吧,明天打乒乓球,得準(zhǔn)。
13、備準(zhǔn)備)從上周五開始和李繼勇修理學(xué)校的微機(jī),一直也沒空學(xué)習(xí),打亂了學(xué)習(xí)計(jì)劃和進(jìn)度了。得抓緊時(shí)間學(xué)習(xí)。加油!2010年11月1日23:51:45篩法求素?cái)?shù):main()int a100;getarr(a,100);arrout(a,100);sushu(a,100);getch();getarr(int *a,int n)int i;for(i=1;i=n;i+)ai=i;arrout(int *a,int n)int i;for(i=1;i=n;i+)printf(%d ,ai);printf(n);sushu(int *a,int n)int i,j,k;for(i=2;in;i+)for(。
14、j=i+1;jn;j+)if(aj!=0&ai!=0)if(aj%ai=0)aj=0;for(k=2;kn;k+)if(ak!=0)printf(%d,ak);二維數(shù)組二維數(shù)組的第一節(jié):二維數(shù)組的定義和引用 資料沒保存丟失了。. 10.9.262010年10月27日22:44:02二維數(shù)組在內(nèi)存中是一一串連續(xù)的存儲(chǔ)單元的方式保存的。第二節(jié):二維數(shù)組的初始化int a34= 1,2,3,4, 5,6,7,8, 9,10,11,12 ; 注:可看成3個(gè)連續(xù)的一維數(shù)組,每個(gè)數(shù)組有4個(gè)元素。每一行的花括號(hào)也可以省略不寫。行缺省,或列缺省都補(bǔ)零。一維數(shù)組可以省略數(shù)組的大小:如:int a=1,2,3,4。
15、;二維數(shù)組則不可以都省略行和列,只可以省略行下標(biāo),列下標(biāo)是不能省略的。數(shù)組元素的個(gè)數(shù)不可以是變量。如:int x,y; int ax+y; 這樣是不合法的。第m行n列可以寫成:am-1 n-1;二維數(shù)組的遍歷:二維數(shù)組是一個(gè)矩陣。遍歷二維數(shù)組:main()int i,j,a34;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,&aij);for(i=0;i3;i+)for(j=0;j4;j+)printf(%d,aij);printf(n);getch();二維數(shù)組和指針以及二維數(shù)組程序舉例:2010.9.26二維數(shù)組名和指針:數(shù)組名存放的是內(nèi)存中該二維數(shù)組的首地址,。
16、即&a00若 指針p=a;即p=&a00.二維數(shù)組中元素的表示方法:ai j(*(a+i) j*(ai+j)*(*(a+i)+j)*(a+j*i+j)9.29指針數(shù)組和行指針2010年10月3日15:16:16指針數(shù)組:定義一個(gè)一維數(shù)組,數(shù)組中的每一個(gè)元素都是一個(gè)整形指針變量。如:定義一個(gè)整形的數(shù)組:int a3 2 ; 則對(duì)應(yīng)的指針數(shù)組為:*q 3; 它和整形數(shù)組的行下標(biāo)相同。指向二維數(shù)組每一行的開頭,也可以說,指針數(shù)組中的每一個(gè)元素存放每一行的首地址。則:p0 存放a00的地址 p1存放 a10的地址 p2存放 a20的地址賦值方法:(雙for循環(huán))for(i=0;i3;i+) pi=ai。
17、;指針數(shù)組引用數(shù)組元素:aij 等價(jià)于 pij*(ai+j); 等價(jià)于 *(pi+j)因?yàn)閜i 等價(jià)于 *(p+i) 所以*(pi+j) 等價(jià)于*(*(p+i)+j)pij 等價(jià)于 (*(p+i) j 行指針:定義一個(gè)指針變量q,它指向一個(gè)包含2個(gè)整形元素的數(shù)組。行指針賦初值:若q=a; 則q+1 等價(jià)于 a+1;等價(jià)于 a1;如: int a3 2, (*q)2; 注意定義行指針的格式。括號(hào)不能少,元素個(gè)數(shù)和整形數(shù)組的列下標(biāo)是相同的。指針數(shù)組移動(dòng)一次,是移動(dòng)一個(gè)單位,即移動(dòng)一個(gè)元素的位置。行指針的單位是一個(gè)數(shù)組,所以它移動(dòng)一次是移動(dòng)一個(gè)數(shù)組的位置。它的移動(dòng)是以行為單位。行指針引用數(shù)組元素:因。
18、為q=a;所以a的引用方法均適用于q(最后一項(xiàng)除外)兩者的基類型不同:行指針的基類型是 數(shù)組 ,指針數(shù)組的基類型和原數(shù)組的類型相同。. /要再看,再學(xué)習(xí)二維數(shù)組名和指針數(shù)組做實(shí)參二維數(shù)組名做實(shí)參時(shí),形參一定是指針,并且這個(gè)指針應(yīng)指向數(shù)組,指向數(shù)組的指針變量為行指針。形參對(duì)應(yīng)格式,即行指針。應(yīng)為:1.(*a)N /數(shù)組的列2. 行指針也可以表示成數(shù)組的形式,即 aMN;3. 行的表達(dá)式可缺省aN指針數(shù)組做實(shí)參:由于指針數(shù)組是一個(gè)數(shù)組,而且她中的每個(gè)元素都是指針,因此當(dāng)指針數(shù)組做實(shí)參時(shí),她對(duì)應(yīng)的形參必須是指向她的指針。即對(duì)應(yīng)的形參,必然是一個(gè)指向指針的指針。即 1*a;2與指針數(shù)組表示方式相同 *aM;3缺省 *a;。
總結(jié)
以上是生活随笔為你收集整理的c语言中void arrout,c语言学习笔记(数组、函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言 结构体作为函数的参数
- 下一篇: c语言多种选,教你轻松学会C语言系列之—