2016-10-13 74 views
0

只需要在C中搞定...想要製作計算用戶輸入的任何數字的平均值的程序。將變化的數字分配給單個變量

該程序工作正常,我不能'邏輯'如何做下一部分。

我需要能夠把他們輸入的每個數字和他們的平均值,使用他們輸入的第一個scanf除以的數量。我只爲他們輸入的每個數字分配了一個變量,但在看了代碼後,我意識到需要使用微積分或一些編程技巧才能夠無限地(有效)執行此操作。基本上,變量需要每次都改變,所以總和可以被分開,然後被分成總數。我在咆哮......

任何能理解我愚蠢問題的人都能給我一些建議嗎?那太棒了......

我的包含和int main()在那裏,不用擔心。只覺得沒有必要用已知的東西來混淆它。另外,我不會做任何速記 - 我覺得現在不需要。

// Base variables 
int iUserReq, iNumCounter = 0; 
// Each individual number 
double dUserNum = 0.0; 
// Calculation 
double dNumSum = 0.0, dNumAvg = 0.0; 


// Ask user for the number of variables to be averaged... will come in handy 
printf("Please input how many numbers you would like to average together, as a number. For example, 10.\nTry to keep it low, because you're going to be putting them all in manually. > "); 
scanf("%d", &iUserReq); 

// If user inputs 0 or negative number, keep asking until they put in a positive number 
while(iUserReq <= 0) 
{ 
    printf("Please input a number greater than 0. > "); 
    scanf("%d", &iUserReq); 
} 

// This adds a counter, so for the number of numbers the user wants to average, it will loop that many times and ask for an input that many times 
// I.e. they want to average 10 numbers, it asks for 10 numbers 

// THIS IS WHERE I'M STUCK... HELP? 
while(iNumCounter < iUserReq) 
{ 
    printf("Please input number. > "); 
    scanf("%lf", &dUserNum); 
    iNumCounter = iNumCounter + 1; 
} 

return 0; 

謝謝...

巴格爾

+1

你已經聲明瞭一個名爲dNumSum的變量..你認爲你應該如何處理它? –

+1

請記住,平均值是所有輸入*的總和*除以輸入*的數量。 –

+0

繼續Joachim的評論 - 您可以保留所輸入數字的總和,因爲用戶輸入數字,然後除以任意點的數字數以顯示連續的平均值 –

回答

0

OK,我要去咬,給你的解決方案。

在你的程序的頂部:

double sum = 0.0; 

後您scanf()的每個號碼:

sum += dUserNum; 

return 0前:

printf("%f\n", sum/iUserReq); 

你明白爲什麼這個作品?

+0

AHAHAHA ...很簡單。親愛的主.....你是先生,是個好人。 – Psychobagger

+1

不要擔心,它不會是最後一次簡單地咬你幾個小時,幾小時和幾小時......(這種折磨在所有代碼中均勻分佈) –

-1

基本上,我無法理解while循環的工作原理。所需的只是在while循環中添加運行總和,以添加每個用戶輸入的數字並獲得總數。

我把這個困惑歸因於缺乏編程技巧,從那以後,這種技能已經大大增加了。

-bagger