如果一個(gè)函數(shù)的目的是要產(chǎn)生一個(gè)新的數(shù)組,那么最好的做法是在調(diào)用函數(shù)前就生成好這個(gè)數(shù)組,然后把這個(gè)數(shù)組作為參數(shù)傳給函數(shù),在函數(shù)中修改這個(gè)數(shù)組的值.
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)公司、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了商丘免費(fèi)建站歡迎大家使用!
像你這種做法,在sum函數(shù)結(jié)束后,sth3數(shù)組就作為局部變量被釋放了.而且在main中,sum數(shù)組聲明以后,sum就是一個(gè)常量了,又怎么能放在=左邊呢.
另外,sum函數(shù)的算法也錯(cuò)了.
正確代碼如下:
void Sum(int sth1[][3],int sth2[][3],int sth3[][3])
{
int i = 0;
int j =0;
do
{
sth3[i][j]=sth1[i][j]+sth2[i][j];
j++;
if(j==3)
}while(i3);
}
int main(void)
{
int matrix1[3][3]={
,
,
};
int matrix2[3][3]={
,
,
,
};
int sum[3][3];
Sum(matrix1,matrix2,sum);
Display(sum);
return 0;
}
如果還沒解決你的問題,可以加我百度HI賬號(hào)。
首先int max(int a[])這個(gè)函數(shù)參數(shù)的意思是接受一個(gè)數(shù)組的首地址,也就是說調(diào)用的時(shí)候必須是地址,也可以說是指針;
如果調(diào)用寫成max(a[10]),這里面a[10]為第十一個(gè)元素的值當(dāng)然不行了,除非你就是把地址放在里面了,強(qiáng)制有的編譯器應(yīng)該可以通過但是會(huì)有警告。
其實(shí)理解了的話max(a)和max(a[0])都是可以的,都表示把數(shù)組a的首地址傳過去。
可以多去了解一下指針,多上機(jī)操作,多練練就會(huì)理解的越深。
c語言可以用數(shù)組元素的方法或指針的方法調(diào)用數(shù)組。
int a[100],i;
for(i=0;i100;i++)
scanf("%d",a[i]);
for(i=0;i100;i++)
printf("%d ",a[i]);
也可以:
int a[100],*p;
for(p=a;pa+100;p++)
scanf("%d",p);
for(p=a;pa+100;p++)
printf("%d ",*p);