實驗結論
part1~part4
·數組本身不能作為參數傳遞給函數,且函數的返回值也不能是數組本身;數組可以說是與函數絕緣的;數組名本身并不代表數組,數組名代表一個與數組元素同類型的指針常量,它指向的位置為數組第一個元素的起始地址;當將數組名作為參數傳遞給函數時函數將這個指向數組第一個元素的起始地址的指針常量賦值給函數形參列表中的定義為與數組元素同類型的指針變量p;由此,p便可以指向數組中的第一個元素的首地址,函數便可以通過這個p來取用數組中的值;但是由于該變量p無法像真正的數組名一樣得到數組長度,所以使用數組名作為參數傳值給函數的同時,還要將數組的長度一并傳給函數。
·函數調用參數傳遞一般有三種方式,分別是有值傳遞、指針傳遞、引用傳遞。
當a是字符型數組時,在輸出字符型數組元素a[i]時,把格式符由%d換成%c。
當a是double型數組時,在輸出數組元素a[i]時,把格式符由%d換成%.2f。
·冒泡法就是比較相鄰兩個數的大小后進行的排序。因為數組元素起始元素是1,所以對于邊緣條件,抓住掃描第i次需要比較(n-1-i)次。
part5編程練習
·練習1:補全程序,查找一組整型數據的最大值。
#include <stdio.h> int findMax(int a[], int n); const int N=5; int main() { int a[N]; int max, i; printf("輸入%d個整數: \n", N); for(i=0;i<5;i++) scanf("%d",&a[i]); max=findMax(a,4) ; printf("數組a中最大元素值為: %d\n\n", max); return 0; } int findMax(int a[],int n){ int i,t; for(i=1;i<n+1;i++){ if(a[i]<a[i-1]){ t=a[i-1]; a[i-1]=a[i]; a[i]=t; } } return a[n]; }

練習2:補全程序,使用冒泡法對字符數組由大到小排序。
#include <stdio.h> const int N=4; void output(char x[], int n); void bubblesort(char x[],int n); int main() { char string[N] = {'2','0','1','9'}; int i; printf("排序前: \n"); output(string, N); bubblesort(string,N); printf("\n排序后: \n"); output(string, N); printf("\n"); return 0; } void bubblesort(char x[], int n) { int i,j,t; for(i=0;i<n-1;i++){ for(j=n-i;j>=0;j--){ if(x[j+1]>x[j]){ t=x[j]; x[j]=x[j+1]; x[j+1]=t; } } } } void output(char x[],int n){ int i; for(i=0;i<n;i++){ printf("%c",x[i]); } }

評論連接:
http://www.rzrgm.cn/lvzixuan/p/10770350.html
http://www.rzrgm.cn/ligengchen/p/10771412.html
http://www.rzrgm.cn/silentisland/p/10771348.html
浙公網安備 33010602011771號