C語言學習筆記 六 陣列 Arrays

2021-06-29 03:56:40 字數 4524 閱讀 9334

一維陣列

/*

陣列:相同資料型別的有序集合

一維陣列定義:元素型別 陣列名[元素個數];

元素個數可以是常量,常量表示式,常量

*/#include

int main(void)

;//通過初始化,限定陣列的長度

int arr3[5]=;

int arr4[5]=;//剩下的值都為0;

int arr5=;//根據初始化值,限定陣列長度

char arr6[3]=;//剩下的值0=> '\0'

return

0;}

陣列使用

/*

陣列的使用

元素的使用:陣列名[下標]

下標從0開始,到(陣列長度-1)結束

*/#include

int main(void)

; //輸入

for(int i=0; i<5; i++)

//輸出

for(int i = 0; i < 5; i++)

printf("%d\n",a[i]);

return

0;}

陣列逆序

//

// 求陣列逆序

//#include

#define n 10 //定義長度

int main(void)

for (i=0; i2; i++)

printf("逆序陣列為:");

for (i=0; i< n; i++)

printf("\n");

return

0;}

二維陣列

/*

二維陣列:元素型別 陣列名[行數][列數]

*/#include

int main(void)

; char arr4[3]=,{},,};

printf("arr1=%lu\n",sizeof(arr1)); //char[3][4] 12

printf("arr1[0]=%lu\n",sizeof(arr1[0])); //char[4] 4

printf("arr1[0][0]=%lu\n",sizeof(arr1[0][0])); //char 1

printf("arr4[0][0]=%lu\n",sizeof(arr4[0][0]));

printf("arr4[0]=%lu\n",sizeof(arr4[0]));

printf("arr4=%lu\n",sizeof(arr4));

return

0;}

二維陣列元素的引用

//二維陣列元素的引用

//元素的引用 陣列名[行數][列數]

//#include

#define n 5

#define m 10

int main(void)

printf("\n");

}}

矩陣的轉置

//

// 矩陣的轉置

//#include

int main(void)

printf("\n");

}//轉置

char b[m][n];

for (int i=0; ifor (int j=0; j//輸出

for (int i=0; ifor (int j=0; jprintf("%c",b[i][j]);

}printf("\n");

}}

矩陣的主對角線,輔對角線之和

//

// 求矩陣的主對角線,輔對角線之和

//#include

int main(void)

; int sum1=0;

int sum2=0;

for (int i=0; i<4; i++)

if (i+j==3) }}

printf("sum1=%d,sum2=%d\n",sum1,sum2);

return

0;}

陣列作為函式引數

//

//陣列與函式

//陣列作為函式引數

//1.陣列元素作為函式引數,函式形參定義為陣列元素的型別

//2.陣列名作為函式引數,傳遞的實參是陣列位址,接收形參是指標型別

//3.為了在被調函式中體現出實參是陣列,形參使用陣列型別接收

//4.使用其他的整型變數將陣列長度傳給被調函式

//5.使用陣列名做函式引數,可以實現在被調函式中間間接訪問主調中值

//#include

int max(int,int);

int main(void)

; int p1,p2;

scanf("%d,%d",&p1,&p2);

printf("max=%d\n",max(a[p1],a[p2]));

return0;}

//求比較大的值

int max(int a,int b)

#include 

void input(int ,int);//宣告可以不加變數名

void output(int ,int);

void change(int ,int);

int main(void)

void change(int a,int len)

for (int i=0; iprintf("%d",a[i]);

}printf("\n");

}void input(int arr,int len)

}void output(int b,int len) //相當於 (int *b,int len)指標

printf("\n");

}

二維陣列做函式引數

/*

*二維陣列做函式引數

*1.陣列名做函式引數,實參是二維陣列名,形參是指向二維陣列一行的指標

2.二維陣列降維成一維陣列,將行列都傳遞

* */

#include

void input(int [4],int);

void sum(int ,int,int);

void most(int ,int,int);

void change(int ,int,int,int );

void sort(int ,int);

int main(void)

printf("\n");

}//輸出每行排序後的結果

printf("此二維陣列每行排序後的結果為:\n");

sort(a[0],3);

for(int i=0;i<3; i++)

return0;}

void input(int a[4],int len) //指標 int (*)[4]

}}//降維成一維陣列求二維陣列每行的和

void sum(int b,int row,int col)

printf("第%d行的和是:%d\n",i,sum);

}}//求二維陣列最大值

void most(int b,int row,int col)

}printf("此二維陣列最大值是:%d\n",maxvalue);

printf("此二維陣列最小值是:%d\n",minvalue);

}//轉置二維陣列

void change(int a,int row,int col,int b)

//選擇排序

void sort(int a,int len)

}temp=a[min];

a[min]=a[i];

a[i]=temp;

}}

二維陣列的轉置

//

//陣列返回給主調函式,保證返回的位址有用且有效

////

//二維陣列的轉置

#include

void change(int,int,int,in);

int main(void)

; int b[4][3];

change(a,3,4,b);

for (int i=0; i<4; i++)

printf("\n");

}}void change(int a,int row,int col,int b)

,,{},{}};

return0;

}

C語言學習筆記《陣列》

1,已知陣列x有5個元素,精組y有6個元素.請分別對x和y排序。輸出x和y排序後的元素 include main y 6 int i,j,sum 0 for i 0 i 4 i int i,j,sum for i 0 i 9 i for i 0 i 9 i printf d t a i code c...

C語言學習筆記(四)陣列

一 陣列 1.陣列基本使用 陣列的定義格式 型別 陣列名 元素個數 int ages 5 19 19 28 27 26 ages 1 29 ages 0 19 ages 1 19 ages 2 28 ages 3 27 ages 4 26 遍歷 按順序檢視陣列的每乙個元素 for int i 0 i...

C語言學習筆記 陣列

陣列是用來儲存乙個固定大小的同型別元素的順序集合。type arrayname arraysize intarray 5 int array intarray 5 include int main int argc,const char argv int i for i 0 i 5 i 多維陣列最簡...