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