2016-02-18 59 views
0

我對編程很陌生。我的問題涉及到一個賦值,我必須創建一個函數來計算三個整數的平均值。在C中,如何從用戶定義的函數中獲取一個值,然後將其打印回另一個用戶定義的函數中?

這部分對我來說很簡單,但我也必須創建另一個函數來打印出平均值,並說「平均值爲%d」等。我只是不知道如何從第一個函數到第二個函數的平均值。

+0

請添加代碼 – anatolyg

+0

一組數字的平均值是這些項目的總和除以組中的項目數量。既然你有一個固定大小的集合,它是'(a + b + c)/ 3'。 – halfer

回答

0

我會做這樣的事......它一直以來我用c很長的時間,但是這可能讓你開始...

int main() 
{ 
    int a,b,c; 
    printf("\nEnter value for A: "); 
    scanf("%i", &a); 
    printf("\nEnter value for B: "); 
    scanf("%i", &b); 
    printf("\nEnter value for C: "); 
    scanf("%i", &c);  

    // now send those to your function to calculate the average and print the result 
    showAverage(a,b,c); 
} 

function showAverage(int a, int b, int c) 
{ 
    float avg = (a+b+c)/3; 
    printf("\nThe average is %f", &avg); 
} 
+0

'void showAverage(int a,int b,int c)'和float avg =(a + b + c)/ 3.0; –

+0

非常感謝您的幫助。我認爲這是一個很好的做法,我可能需要像這樣提交,但是在我的任務中,我需要一個單獨的函數來計算在讀取值之後的平均值,然後是專門用於顯示平均值的另一個函數。我意識到這是不合邏輯的,但這是他給我的任務。謝謝 – antuasallong

+0

而且一個演員可以跳過警告'(float)(a + b + c)/ 3;' –

1

這聽起來像你指的是「迴歸」來自函數的數據。

下面是一個例子:

 int addNumbers(int first, int second){ 
      int third; 
      third = first + second; 
      return third; 
      } 

這將使你打電話的addNumbers(4,8),並將它歸還12

 printf("The product of 4 and 8 is %d", addNumbers(4,8)); 

我相信這是你在做什麼問。

2

嗨第一個函數可以使用返回類型返回平均值,例如double average(int a1,int a2,int a3) { return (a1+a2+a3)/3.0; },在第二個函數中你可以: 1.調用平均函數並存儲或打印返回值; 2.將平均值作爲函數參數傳遞。 3.使用平均值作爲全局變量(在這種情況下,平均函數不會返回值)

1

你可以做到這一點

float calculateAverage(int a,int b, int c); 
void showAverage(float avg); 

int main() 
{ 
    int a,b,c; 
    float avg; 
    printf("\nEnter value for A: "); 
    scanf("%i", &a); 
    printf("\nEnter value for B: "); 
    scanf("%i", &b); 
    printf("\nEnter value for C: "); 
    scanf("%i", &c);  
    // calculate the average 
    avg = calculateAverage(a,b,c); 
    showAverage(avg); 
} 

float calculateAverage(int a,int b, int c) { 
    return (a+b+c)/3.0; 
} 
void showAverage(float avg) 
{ 
    printf("\nThe average is %f", avg); // &avg is the address we just print we use the value and not the address so don't use &avg but avg 
} 
相關問題