国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言:編寫函數(shù)進(jìn)行一維數(shù)組輸入輸出和求平均值

這篇具有很好參考價值的文章主要介紹了C語言:編寫函數(shù)進(jìn)行一維數(shù)組輸入輸出和求平均值。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

#include<stdio.h>
#define N 40
float average(int score[],int n);/*ave()函數(shù)原型*/
void readscore(int score[],int n);/*readscore函數(shù)原型*/
int main()
{	float score[N],aver;
    int n;

	scanf("%d",&n);
   
	readscore(score,n);/*數(shù)組名作為函數(shù)實參調(diào)用函數(shù)readscore()*/
	aver=average(score,n);/*數(shù)組名作為函數(shù)實參調(diào)用average()*/
	printf("Average score is %f",aver);
	return 0;
 } 
 /*函數(shù)功能:計算n個學(xué)生的平均分*/
 float average(int score[],int n) /*average()函數(shù)的定義*/
 {	int i;
    float sum=0;
 	for(i=0;i<n;i++)
 	{sum+=score[i];
	 }
	 /*return sum/n;這里為了防止發(fā)生除0錯誤,做如下修改*/
	 return n>0?sum/n:-1; 
  } 
/*函數(shù)功能:計算n個學(xué)生的某門課程的成績*/
void readscore(int score[],int n)
{	int i;
	
	for(i=0;i<n;i++)
	{	scanf("%d",&score[i]);
        printf("%d ",score[i]);
	 }
     printf("\n");
 } 

任務(wù)描述

本關(guān)任務(wù):從鍵盤輸入某班學(xué)生 C 語言課的成績(已知該班人數(shù)為 40 人),要求分別定義三個子函數(shù)分別進(jìn)行數(shù)組輸入、輸出和求平均分。

相關(guān)知識

如果希望定義一個函數(shù),能對一個數(shù)組整體進(jìn)行操作,我們應(yīng)該注意以下 3 點:

  1. 定義函數(shù)時,形參是一維數(shù)組,那么主調(diào)函數(shù)也應(yīng)該定義一個一維數(shù)組,不能只在一方定義,主調(diào)函數(shù)的數(shù)組稱為實參數(shù)組。
  2. 實參數(shù)組與形參數(shù)組類型必須一致。
  3. 在 C 編譯器中,用一維數(shù)組名作為函數(shù)形參時,在函數(shù)體內(nèi)數(shù)組名自動退化為指針。C 編譯器對形參數(shù)組的大小不作檢查。

下面的幾種書寫形式是等效的:

 
  1. void inputarr (int array[ ], int n)
  2. {
  3. }
  4. void inputarr (int array[5], int n)
  5. {
  6. }
  7. void inputarr (int array[10], int n)
  8. {
  9. }
  10. void inputarr (int *array, int n)
  11. {
  12. }

當(dāng)形參被聲明為一維數(shù)組時,形參列表中數(shù)組的方括號內(nèi)數(shù)組長度可以為空,即使不為空,也不起作用,上述四種書寫形式,系統(tǒng)都將array解釋為指針變量。調(diào)用此函數(shù)時,不能將一個變量的地址傳遞給array,必須將一個實參數(shù)組的地址傳遞給array,要求形參和實參數(shù)組類型一致,其實就是要求地址類型一致。

定義輸入數(shù)組元素的函數(shù) inputarr (),函數(shù)沒有返回值,返回值類型為void

 
  1. void inputarr (int array[ ])
  2. {
  3. int i;
  4. for (i=0; i < 40; i++)
  5. {
  6. scanf("%d", & array[i]);
  7. }
  8. }

但是這個 inputarr ()函數(shù),只能對長度為40的數(shù)組進(jìn)行輸入操作,怎樣才能用同一個函數(shù)對不同長度的數(shù)組都可以進(jìn)行輸入操作呢?

定義子函數(shù)時,在形參列表中增加一個整型變量n,用來接收主調(diào)函數(shù)中實參數(shù)組的實際長度。改進(jìn)函數(shù) inputarr ()定義如下:

 
  1. void inputarr (int array[ ], int n)
  2. {
  3. int i;
  4. for (i=0; i<n; i++)
  5. {
  6. scanf("%d", & array[i]);
  7. }
  8. }

調(diào)用這個子函數(shù)時,就是在向函數(shù)傳遞一維數(shù)組的時候,實參是數(shù)組名,后面不要方括號,數(shù)組名代表了數(shù)組的首地址,用數(shù)組名作函數(shù)參數(shù),只傳遞一個地址,由于首地址相同,故實參數(shù)組與形參數(shù)組占用同一段內(nèi)存,在該函數(shù)內(nèi),不僅可以讀這個數(shù)組的元素,還可以修改它們的值。

請模仿 inputarr ()函數(shù)編寫以下兩個函數(shù)的定義。

 
  1. float average (int array[ ] , int n);
  2. void outputarr (int array[ ] , int n);

編程要求

根據(jù)提示,在右側(cè)編輯器 Begin-End 區(qū)間補充代碼,從后臺獲取某班學(xué)生 C 語言課的成績(已知每班人數(shù)最多不超過 40 人,具體人數(shù)由后臺提供),計算該班的平均分,要求分別定義子函數(shù)進(jìn)行輸入、輸出分?jǐn)?shù)和求平均分。

測試說明

平臺會對你編寫的代碼進(jìn)行測試。

測試輸入:

 
  1. 10
  2. 41 83 72 32 49 77 86 30 57 92

輸入說明: 第一行為班級人數(shù); 第二行為每個人的成績。

預(yù)期輸出:文章來源地址http://www.zghlxwxcb.cn/news/detail-463633.html

 
  1. 41 83 72 32 49 77 86 30 57 92
  2. Average score is 61.900002

到了這里,關(guān)于C語言:編寫函數(shù)進(jìn)行一維數(shù)組輸入輸出和求平均值的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包