1、使用動(dòng)態(tài)數(shù)組可以實(shí)現(xiàn)變長(zhǎng)度數(shù)組。建動(dòng)態(tài)數(shù)組,其他就像數(shù)組一樣使用就行了。
懷遠(yuǎn)網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
2、例程:
int?row=0;????//函數(shù)
int?col=0;????//列數(shù)
int?i;
int?**?arr=NULL;?????//下面假設(shè)存儲(chǔ)的數(shù)據(jù)類型為int
printf(“請(qǐng)輸入二維數(shù)組的行數(shù)和列數(shù):”);
scanf("%d%d",row,col);
//要不要加判斷輸入是否合法你自己決定,這里就不加,
arr?=?(int?**)malloc(sizeof(int*)*row);???????//arr在這里可以看出成數(shù)組,數(shù)組的每個(gè)成員都是指向int類型的指針,這樣每個(gè)指針指向的代表一行,共row行???
for(i=0;?irow;?i++)????????????//為每行申請(qǐng)空間
{
arr[i]=(int*)malloc(sizeof(int)*col);???????//每一行有col列
}
之后就可以用a[i][j]的形式訪問(wèn)二維數(shù)組了
1、我們首先定義一個(gè)二級(jí)指針和一個(gè)行列變量[int ** array,row,column;]。
2、然后我們編寫(xiě)進(jìn)入行和列的語(yǔ)句,代碼如圖所示。
3、接下來(lái)我們可以用一維數(shù)組打開(kāi)一維一維數(shù)組。
4、接下來(lái),我們使用[array [i] =(int *)malloc(sizeof(int)* column);]來(lái)為數(shù)組再次生成包含該數(shù)組的新數(shù)組。
5、然后我們可以為它賦值并輸出[代碼如圖所示]。
6、運(yùn)行程序后我們可以看到這種效果。
已通過(guò)測(cè)試
#include stdio.h
void fun(int a[][10],int row,int col)
{ int i,j,k,sum;
int r[10],c[10];
k=0;
for(i=0;irow;i++)
{ sum=0;
for(j=0;jcol;j++)
sum+=a[i][j];
r[k]=sum;
k++;
}
k=0;
for(j=0;jcol;j++)
{ sum=0;
for(i=0;irow;i++)
sum+=a[i][j];
c[k]=sum;
k++;
}
for(k=0;krow;k++)
printf("the sum of NO.%d row is %d\n",k+1,r[k]);
for(k=0;kcol;k++)
printf("the sum of NO.%d column is %d\n",k+1,c[k]);
}
main()
{ int a[10][10],row,col;
int i,j;
printf("Input the row and column of array:");
scanf("%d%d",row,col);
for(i=0;irow;i++)
for(j=0;jcol;j++)
scanf("%d",a[i][j]);
fun(a,row,col);
}