C語(yǔ)言中,并沒(méi)有專門(mén)的求平均數(shù)函數(shù)。一般都是根據(jù)需要自行編寫(xiě)。
創(chuàng)新互聯(lián)公司致力于成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,成都網(wǎng)站設(shè)計(jì),集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過(guò)標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場(chǎng)競(jìng)爭(zhēng)中脫穎而出。 選擇創(chuàng)新互聯(lián)公司,就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!
一、算法設(shè)計(jì):
平均數(shù)需要先計(jì)算一組數(shù)的總和,然后除以總個(gè)數(shù)。
所以需要按照如下步驟進(jìn)行:
1、確認(rèn)元素個(gè)數(shù)及各個(gè)元素值;
2、遍歷,累加各個(gè)元素;
3、除以個(gè)數(shù),得到平均數(shù);
4、輸出結(jié)果。
二、參考代碼:
以整型為例:
#include?stdio.h
float?ave(int?*a,?int?n)
{
float?s=0;
int?i;
for(i=0;in;i++)//遍歷。
s+=a[i];//累加。
s/=n;//計(jì)算平均數(shù)。
return?s;//返回結(jié)果。
}
int?main()
{
int?a[5]?=?{2,6,8,9,3};//待計(jì)算數(shù)組。
printf("%f\n",?ave(a,5));//調(diào)用函數(shù),計(jì)算平均數(shù)并輸出。?
return?0;
}
注意:由于平均數(shù)涉及除法,所以一般平均數(shù)值并不是整數(shù),所以需要用浮點(diǎn)數(shù)來(lái)存儲(chǔ)平均數(shù)。?
因?yàn)槟阍趍ain()中的數(shù)組a 和你在函數(shù)ave(int x)中的數(shù)組a并不是同一個(gè),這個(gè)是變量的作用域?qū)е碌?/p>
計(jì)算均值的時(shí)候,實(shí)際上用的是在ave(int x) 中新定義沒(méi)有初始化的數(shù)組a
所以返回的均值就是隨機(jī)數(shù)
改正:
#include stdio.h
float a[2][3], ave(int x);
void main()
{
int i, j;
for (i = 0; i 2;i++)
for (j = 0; j 2; j++)
scanf("%f", a[i][j]);
for (i = 0; i 2; i++)
a[i][2] = ave(i);
for (i = 0; i 2;i++)
for (j = 0; j 3; j++)
{
printf("%.1f ", a[i][j]);
if (j == 2) printf("\n");
}
}
float ave(int x)
{
float m = 0, z;
int n;
for (n = 0; n 2; n++)
m = m + a[x][n];
z = m / 2;
return z;
}
希望對(duì)你有幫助
解決方案1:
if(i%3==2)coutlt;lt;'\n';
解決方案2:
return av/(float)n;
解決方案3:
#includelt;iostreamgt;
using namespace std;
void input(int a[],int n)
{
for(int i=0;ilt;n;i++)cingt;gt;alt;igt;;
}
void output(int a[],int n)
{
for(int i=0;ilt;n;i++)
{
coutlt;lt;alt;igt;;
if(i%3==2)coutlt;lt;'\n';
}
}
float average(int a[],int n)
{
float av=0;
for(int i=0;i!=n;i++)av+=alt;igt;;return av/(float)n;
}
int main(){
const int n=10;
int a[n];
input(a,n);
output(a,n);
coutlt;lt;"平均值="lt;lt;average(a,n)lt;lt;'\n';
return 0;
}
擴(kuò)展資料:
include用法:
#include命令預(yù)處理命令的一種,預(yù)處理命令可以將別的源代碼內(nèi)容插入到所指定的位置;可以標(biāo)識(shí)出只有在特定條件下才會(huì)被編譯的某一段程序代碼;可以定義類似標(biāo)識(shí)符功能的宏,在編譯時(shí),預(yù)處理器會(huì)用別的文本取代該宏。
插入頭文件的內(nèi)容
#include命令告訴預(yù)處理器將指定頭文件的內(nèi)容插入到預(yù)處理器命令的相應(yīng)位置。有兩種方式可以指定插入頭文件:
1、#includelt;文件名gt;
2、#include"文件名"
如果需要包含標(biāo)準(zhǔn)庫(kù)頭文件或者實(shí)現(xiàn)版本所提供的頭文件,應(yīng)該使用第一種格式。如下例所示:
#includelt;math.hgt;//一些數(shù)學(xué)函數(shù)的原型,以及相關(guān)的類型和宏
如果需要包含針對(duì)程序所開(kāi)發(fā)的源文件,則應(yīng)該使用第二種格式。
采用#include命令所插入的文件,通常文件擴(kuò)展名是.h,文件包括函數(shù)原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。如下例所示:
#include"myproject.h"http://用在當(dāng)前項(xiàng)目中的函數(shù)原型、類型定義和宏
你可以在#include命令中使用宏。如果使用宏,該宏的取代結(jié)果必須確保生成正確的#include命令。例1展示了這樣的#include命令。
【例1】在#include命令中的宏
#ifdef _DEBUG_
#define MY_HEADER"myProject_dbg.h"
#else
#define MY_HEADER"myProject.h"
#endif
#include MY_HEADER
當(dāng)上述程序代碼進(jìn)入預(yù)處理時(shí),如果_DEBUG_宏已被定義,那么預(yù)處理器會(huì)插入myProject_dbg.h的內(nèi)容;如果還沒(méi)定義,則插入myProject.h的內(nèi)容。
參數(shù)說(shuō)明: a是一維浮點(diǎn)數(shù)數(shù)組,n是數(shù)組中的元素個(gè)數(shù)
下面的函數(shù)求a中元素的平均值,并返回。
float Average(float* a, int n)
{
int i;
float s = 0;
// 求和
for (i = 0; i n; i ++)
s += a[i];
s /= n; // 求平均
return s;
}
// 測(cè)試
void main()
{
float a[] = {2, 5, 4, 7};
float x;
x = Average(a, 4);
printf("平均值是:%f\n", x);
}
1、新建一個(gè)?求數(shù)組內(nèi)所有元素的平均值項(xiàng)目。
2、添加一個(gè) average.cpp 文件。
3、包含需要用到的各種頭文件。
4、輸入main函數(shù)。
5、定義一個(gè)double類型的數(shù)組arr[5]。
6、使用 for 循環(huán)求出arr數(shù)組的平均值。
7、運(yùn)行程序,輸出結(jié)果即可。
1、c=sum/10;
錯(cuò)了。不是4個(gè)數(shù)求平均值嗎?應(yīng)該c=sum/4;
2、printf("c
is%d");里面沒(méi)有輸出表列。應(yīng)該printf("c
is%d",c);
3、如果不能整除,平均值c,和變量sum變量應(yīng)該是實(shí)數(shù)型,float
c,sum;因?yàn)?0/4=2,所以sum/4中的sum變量最好也是實(shí)數(shù)型。
分享標(biāo)題:函數(shù)c語(yǔ)言求數(shù)組平均數(shù) c語(yǔ)言求數(shù)組平均數(shù)的函數(shù)
URL地址:http://muchs.cn/article46/docodeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、搜索引擎優(yōu)化、靜態(tài)網(wǎng)站、網(wǎng)站改版
聲明:本網(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)