1、新建一個數(shù)組作為參數(shù)項目,如圖所示:
創(chuàng)新互聯(lián)是一家專業(yè)提供浪卡子企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、html5、小程序制作等業(yè)務(wù)。10年已為浪卡子眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。
2、添加一個array.c文件,如圖所示:
3、包含stdio.h和stdlib.h頭文件,如圖所示:
4、輸入main函數(shù)主體及返回值,如圖所示:
5、定義一個數(shù)組arr,如圖所示:
6、定義一個function函數(shù),如圖所示:
7、將數(shù)組作為參數(shù)傳遞給function函數(shù),如圖所示:
8、運行程序,輸出結(jié)果,如圖所示:
來傳送子函數(shù)中的數(shù)組有多種方法——可以通過函數(shù)返回值返回地址傳遞數(shù)組;也可以通過函數(shù)輸入?yún)?shù)來傳遞數(shù)組;還可以通過全局變量來傳遞數(shù)組。
子函數(shù)本身可以直接在作用域中進行調(diào)用。
1、通過函數(shù)返回值返回地址傳遞數(shù)組。
聲明函數(shù)時需要聲明函數(shù)返回值類型為對應(yīng)數(shù)組的地址,此時可以返回數(shù)組的地址,結(jié)合數(shù)組元素的地址關(guān)系可以傳遞整個數(shù)組,同時可以根據(jù)數(shù)組的特性傳遞多個參數(shù)。
2、通過輸入?yún)?shù)傳遞數(shù)組。
聲明函數(shù)時提供空輸入?yún)?shù),調(diào)用函數(shù)時提供目標數(shù)組,即可以通過該數(shù)組調(diào)用子函數(shù)中的數(shù)組,該方法也可以用于傳遞多個參數(shù)。
3、通過全局變量來傳遞數(shù)組。
聲明全局變量用于存儲子函數(shù)中的數(shù)組,此時可以在全局變量作用域中讀取調(diào)用子函數(shù)的數(shù)組。
注意:子函數(shù)是C語言模塊化編程思想的核心,其方法是通過輸入接口和輸出接口實現(xiàn)對黑盒的調(diào)用,故對其內(nèi)部數(shù)據(jù)的輸入和調(diào)用也需要通過輸入接口、輸出接口和程序的公共區(qū)域?qū)崿F(xiàn)。
對于有數(shù)組參數(shù)的函數(shù),編譯程序要為其開辟相應(yīng)的內(nèi)存空間,而程序中兩個函數(shù)
都有數(shù)組參數(shù)a[n][m],由于n,m是變量,編譯程序并不知道n,m的具體值,所以不能
通過編譯。
修改:
1.在#include下面添加以下偽指令:
#define n 5
#define m 5
2.將函數(shù)的參數(shù)形式改為:
int sum(int a[n][m]);
void pl(int a[n][m]);
并按此修改程序文件中所有關(guān)于這兩個函數(shù)的申明和調(diào)用即可
程序是什么功能,有什么錯誤 ,請說明。 追問: 編寫程序求兩個整數(shù)的所有質(zhì)公約數(shù)、最大公約數(shù)、最小公倍數(shù)和兩個數(shù)之差的絕對值。要求分別編寫五個函數(shù)分別實現(xiàn)求兩個整數(shù)的最小質(zhì)公約數(shù)int zgys(int x,int y)、所有質(zhì)公約數(shù)void zgyssz(int a[100],int x,int y)、最大公約數(shù)int gys(int x,int y)、最小公倍數(shù)int gbs(int x,int y)和兩個數(shù)之差的絕對值int fun(int x,int y)。 void zgyssz(int a[100],int x,int y) { int i; int zgys(int x,int y); for(i=0;i100;i++) { a[i]=zgys(x,y); if(a[i]==1)break; x=x/a[i];y=y/a[i]; } } int gys(int x,int y) { int i,j=0,a[100]; void zgyssz(int a[100],int,int); zgyssz(a[100],x,y); { int t=1; for(i=0;ij;i++)t=t*a[i]; return t; } } 回答: 哪些函數(shù)是對應(yīng)的功能。還有,不是要5個函數(shù)嗎,怎么只有三個的。 追問: void zgyssz(int a[100],int x,int y) { int i; int zgys(int x,int y); for(i=0;i100;i++) { a[i]=zgys(x,y); if(a[i]==1)break; x=x/a[i];y=y/a[i]; } } int gys(int x,int y) { int i,j=0,a[100]; void zgyssz(int a[100],int,int); zgyssz(a[100],x,y); { int t=1; for(i=0;ij;i++)t=t*a[i]; return t; } } 那三個是 int zgys(int x,int y) { int f=1,i,min; min=xy?x:y; for(i=2;i=min;i++) {/*判斷i是否是x與y的公約數(shù)*/ if(x%i==0y%i==0) f=i; break; } return f; } int gbs(int x,int y) { return x*y/gys(x,y); } int fun(int x,int y) { if(xy)return y-x; else return x-y; } 這三個我做出來了。 回答: 直接說,哪個函數(shù)是什么功能的就行了。還有就是,哪個函數(shù)有問題。 追問: 最小公倍數(shù) int gbs(int x,int y){ return x*y/gys(x,y);} 兩個數(shù)之差的絕對值 int fun(int x,int y){ if(xy)return y-x; else return x-y;} 求兩個整數(shù)的最小質(zhì)公約數(shù) int zgys(int x,int y){ int f=1,i,min; min=xy?x:y; for(i=2;i=min;i++) {/*判斷i是否是x與y的公約數(shù)*/ if(x%i==0y%i==0) f=i; break; } return f;} 求兩個整數(shù)的所有質(zhì)公約數(shù) void zgyssz(int a[100],int x,int y) { int i; int zgys(int x,int y); for(i=0;i100;i++) { a[i]=zgys(x,y); if(a[i]==1)break; x=x/a[i];y=y/a[i]; }} 求兩個整數(shù)的最大公約數(shù) int gys(int x,int y){ int i,j=0,a[100]; void zgyssz(int a[100],int,int); zgyssz(a[100],x,y); { int t=1; for(i=0;ij;i++)t=t*a[i]; return t; }} 后兩個有問題,弄不出來 回答: #includestdio.h int n; void main() { int zgys(int x,int y); void zgyssz(int a[ ],int x,int y); int gys(int x,int y); int a,b,c; printf("請輸入兩個數(shù):"); scanf("%d%d",a,b); c=gys(a,b); printf("%d\n",c); } void zgyssz(int a[ ],int x,int y) { int i; int zgys(int x,int y); for(i=0;i100;i++) { a[i]=zgys(x,y); if(a[i]==1)break; x=x/a[i];y=y/a[i]; } n=i+1; } int gys(int x,int y) { int i,j=0,a[100]; void zgyssz(int a[100],int,int); zgyssz(a,x,y); { int t=1; for(i=0;in;i++)t=t*a[i];//這里的個數(shù)應(yīng)該是a[i]的個數(shù)n。定為全局變量 return t; } } int zgys(int x,int y) { int f=1,i,min; min=xy?x:y; for(i=2;i=min;i++) { if(x%i==0y%i==0) { f=i; break; //break要放里面。 } } return f; }
希望采納
分享名稱:c語言函數(shù)數(shù)組調(diào)用函數(shù) c語言數(shù)組在函數(shù)中的調(diào)用
網(wǎng)頁路徑:http://jinyejixie.com/article44/dochhhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、外貿(mào)建站、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)