因?yàn)閙ain()函數(shù)中的function_a函數(shù)聲明和實(shí)際的情況不一樣,真實(shí)情況是該函數(shù)有三個(gè)參數(shù),而你卻將其聲明為沒(méi)有參數(shù),所以在調(diào)用時(shí),傳入?yún)?shù)會(huì)有警告。
創(chuàng)新互聯(lián)建站主營(yíng)昔陽(yáng)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,App定制開(kāi)發(fā),昔陽(yáng)h5微信小程序開(kāi)發(fā)搭建,昔陽(yáng)網(wǎng)站營(yíng)銷(xiāo)推廣歡迎昔陽(yáng)等地區(qū)企業(yè)咨詢(xún)
由于function_a的定義在main()之前,所以去掉主函數(shù)中的聲明即可,或者將聲明改為正確形式。
程序是什么功能,有什么錯(cuò)誤 ,請(qǐng)說(shuō)明。 追問(wèn): 編寫(xiě)程序求兩個(gè)整數(shù)的所有質(zhì)公約數(shù)、最大公約數(shù)、最小公倍數(shù)和兩個(gè)數(shù)之差的絕對(duì)值。要求分別編寫(xiě)五個(gè)函數(shù)分別實(shí)現(xiàn)求兩個(gè)整數(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)和兩個(gè)數(shù)之差的絕對(duì)值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ù)是對(duì)應(yīng)的功能。還有,不是要5個(gè)函數(shù)嗎,怎么只有三個(gè)的。 追問(wèn): 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; } } 那三個(gè)是 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; } 這三個(gè)我做出來(lái)了。 回答: 直接說(shuō),哪個(gè)函數(shù)是什么功能的就行了。還有就是,哪個(gè)函數(shù)有問(wèn)題。 追問(wèn): 最小公倍數(shù) int gbs(int x,int y){ return x*y/gys(x,y);} 兩個(gè)數(shù)之差的絕對(duì)值 int fun(int x,int y){ if(xy)return y-x; else return x-y;} 求兩個(gè)整數(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;} 求兩個(gè)整數(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]; }} 求兩個(gè)整數(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; }} 后兩個(gè)有問(wèn)題,弄不出來(lái) 回答: #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("請(qǐng)輸入兩個(gè)數(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];//這里的個(gè)數(shù)應(yīng)該是a[i]的個(gè)數(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; }
希望采納
1、新建一個(gè)數(shù)組作為參數(shù)項(xiàng)目,如圖所示:
2、添加一個(gè)array.c文件,如圖所示:
3、包含stdio.h和stdlib.h頭文件,如圖所示:
4、輸入main函數(shù)主體及返回值,如圖所示:
5、定義一個(gè)數(shù)組arr,如圖所示:
6、定義一個(gè)function函數(shù),如圖所示:
7、將數(shù)組作為參數(shù)傳遞給function函數(shù),如圖所示:
8、運(yùn)行程序,輸出結(jié)果,如圖所示:
來(lái)傳送子函數(shù)中的數(shù)組有多種方法——可以通過(guò)函數(shù)返回值返回地址傳遞數(shù)組;也可以通過(guò)函數(shù)輸入?yún)?shù)來(lái)傳遞數(shù)組;還可以通過(guò)全局變量來(lái)傳遞數(shù)組。
子函數(shù)本身可以直接在作用域中進(jìn)行調(diào)用。
1、通過(guò)函數(shù)返回值返回地址傳遞數(shù)組。
聲明函數(shù)時(shí)需要聲明函數(shù)返回值類(lèi)型為對(duì)應(yīng)數(shù)組的地址,此時(shí)可以返回?cái)?shù)組的地址,結(jié)合數(shù)組元素的地址關(guān)系可以傳遞整個(gè)數(shù)組,同時(shí)可以根據(jù)數(shù)組的特性傳遞多個(gè)參數(shù)。
2、通過(guò)輸入?yún)?shù)傳遞數(shù)組。
聲明函數(shù)時(shí)提供空輸入?yún)?shù),調(diào)用函數(shù)時(shí)提供目標(biāo)數(shù)組,即可以通過(guò)該數(shù)組調(diào)用子函數(shù)中的數(shù)組,該方法也可以用于傳遞多個(gè)參數(shù)。
3、通過(guò)全局變量來(lái)傳遞數(shù)組。
聲明全局變量用于存儲(chǔ)子函數(shù)中的數(shù)組,此時(shí)可以在全局變量作用域中讀取調(diào)用子函數(shù)的數(shù)組。
注意:子函數(shù)是C語(yǔ)言模塊化編程思想的核心,其方法是通過(guò)輸入接口和輸出接口實(shí)現(xiàn)對(duì)黑盒的調(diào)用,故對(duì)其內(nèi)部數(shù)據(jù)的輸入和調(diào)用也需要通過(guò)輸入接口、輸出接口和程序的公共區(qū)域?qū)崿F(xiàn)。
對(duì)于有數(shù)組參數(shù)的函數(shù),編譯程序要為其開(kāi)辟相應(yīng)的內(nèi)存空間,而程序中兩個(gè)函數(shù)
都有數(shù)組參數(shù)a[n][m],由于n,m是變量,編譯程序并不知道n,m的具體值,所以不能
通過(guò)編譯。
修改:
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)于這兩個(gè)函數(shù)的申明和調(diào)用即可
c語(yǔ)言可以用數(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);
網(wǎng)站題目:c語(yǔ)言中函數(shù)對(duì)數(shù)組的調(diào)用 c語(yǔ)言怎么在函數(shù)中調(diào)用數(shù)組
文章地址:http://aaarwkj.com/article42/docpchc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)、電子商務(wù)、品牌網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)