c語(yǔ)言獲取數(shù)組函數(shù)返回值 c++ 返回?cái)?shù)組的函數(shù)

C語(yǔ)言 數(shù)組返回值 問(wèn)題~

gaohu0926所言正確,我具體補(bǔ)充三點(diǎn)。

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供金安網(wǎng)站建設(shè)、金安做網(wǎng)站、金安網(wǎng)站設(shè)計(jì)、金安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、金安企業(yè)網(wǎng)站模板建站服務(wù),10年金安做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

1、函數(shù)GetItemPrice聲明為:

int GetItemPrice(int price[],FILE *file)

即返回值為int類型。而實(shí)際上,該函數(shù)返回price,此變量為int *類型,因此出現(xiàn)類型不匹配的錯(cuò)誤信息:“ 'int ' differs in levels of indirection from 'int *'”。

2、如果需要獲得樓主所說(shuō)的“想把PRICE的整個(gè)數(shù)組的值返回”,那么在調(diào)用函數(shù)GetItemPrice時(shí)使用如下代碼:

GetItemPrice(price, stokefile);

而不是price[Nitems] = GetItemPrice(stockfile);

并且在函數(shù)GetItemPrice中,返回0,而不是price。

3、函數(shù)GetItemPrice中尚存在一個(gè)小BUG:

fscanf(file,"%d",price[i]);

應(yīng)該寫為:

fscanf(file,"%d",price[i]);

c語(yǔ)言函數(shù)返回?cái)?shù)組

你好!

將函數(shù)采用指針的形式返回平均值

注意看后面的注釋

#includestdio.h

int?main()

{

float?*student_aver(float?array[3][3]);???//?改成指針的形式輸出?

float?score[3][3];

float?*a;

int?i,j;

printf("請(qǐng)輸入學(xué)生各科的成績(jī):");

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

for(j=0;j3;j++)

scanf("%f",score[i][j]);

printf("每個(gè)學(xué)生的平均成績(jī)分別為:");

a=student_aver(score);????????????????//?指針?a?接收函數(shù)的返回值?

for(i=0;i3;i++)??????????????????????//?打印出平均值?

printf("%.2f?",a[i]);

return?0;

}

float?*student_aver(float?array[3][3])????//?改成指針的形式輸出

{

int?i,j;

float?sum,a[3];

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

{

sum=0;

for(j=0;j3;j++)

sum=sum+array[i][j];

a[i]=sum/3;

???}

return?a;?????????????????????????????//?輸出數(shù)組?a?

}

c語(yǔ)言函數(shù)返回?cái)?shù)組?

在C語(yǔ)言中,無(wú)法直接返回一個(gè)數(shù)組,但是可以通過(guò)返回對(duì)應(yīng)類型指針的方式,返回?cái)?shù)組。

在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。

比如,定義一個(gè)函數(shù),申請(qǐng)一定長(zhǎng)度的整型動(dòng)態(tài)數(shù)組,其長(zhǎng)度用參數(shù)傳入,并將結(jié)果返回。如出錯(cuò),返回空指針NULL。 代碼可以寫成如下形式:

int?*int_array_create(int?n)//參數(shù)n為數(shù)組元素個(gè)數(shù)

{

int?*r;?

if(n=0)?return?NULL;//參數(shù)錯(cuò)誤

r?=?(int?*)malloc(sizeof(int)*n);//申請(qǐng)內(nèi)存空間,大小為n個(gè)int長(zhǎng)度。

return?r;//返回得到的整型數(shù)組的指針。?

}

C語(yǔ)言函數(shù)調(diào)用關(guān)于數(shù)組的返回

這個(gè)不需要返回個(gè)數(shù)組!

你只要在主函數(shù)中,這樣調(diào)用 order(a,count); 就行了!

其中a是數(shù)組名,count是數(shù)組大小。就是把數(shù)組的地址傳給函數(shù),

這樣在排序函數(shù)中操作的就是主函數(shù)中的數(shù)組了

另外兄弟,我發(fā)現(xiàn)你的排序算法好像是錯(cuò)誤的吧,給你一個(gè)程序參考:

void sort(int arr[],int n)

{

//冒泡法非遞減排序

int i,j,temp;

for(i=0;in-1;i++)

for(j=0;jn-i-1;j++)

{

if(arr[j]arr[j+1])

temp=arr[j],arr[j]=arr[j+1],arr[j+1]=temp;

}

}

你按照上面的 調(diào)用方式,就相當(dāng)于返回了排序好的數(shù)組呀?。。。。。。?/p>

因?yàn)閭鞯氖堑刂分?!,你如果把?shù)組聲明為全局變量,就根本不需要往排序的函數(shù)中傳遞數(shù)組了

C語(yǔ)言里返回一個(gè)數(shù)組的函數(shù)該怎么樣寫

C語(yǔ)音沒(méi)有直接返回一個(gè)數(shù)組的說(shuō)法,要得到一個(gè)數(shù)組的返回值,一般做法有幾點(diǎn):

傳入一個(gè)指向數(shù)組指針變量,在函數(shù)內(nèi)部對(duì)指針地址內(nèi)的值進(jìn)行修改

函數(shù)內(nèi)部申請(qǐng)動(dòng)態(tài)內(nèi)存,將數(shù)據(jù)保存到這塊內(nèi)存后返回該動(dòng)態(tài)內(nèi)存的指針,最后需要手動(dòng)釋放這塊內(nèi)存

使用靜態(tài)變量(這個(gè)方法不建議使用,靜態(tài)、全局變量很容易導(dǎo)致多線程編程出問(wèn)題)

當(dāng)前文章:c語(yǔ)言獲取數(shù)組函數(shù)返回值 c++ 返回?cái)?shù)組的函數(shù)
標(biāo)題網(wǎng)址:http://muchs.cn/article14/docccge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、定制開(kāi)發(fā)用戶體驗(yàn)、品牌網(wǎng)站制作域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(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)

綿陽(yáng)服務(wù)器托管