目前我的程序允許用戶輸入5個用於創建平均數的整數。這被設置爲5,因爲在輸入第五個數字之後,循環被破壞。跳轉循環,同時添加到動態數組 - C
我試圖實現一種方法,它將讓用戶繼續添加儘可能多的數字,因爲他們喜歡的數組,然後我可以使用它來創建一個平均沒有數量的限制可以輸入。
我遇到了一些問題,首先我不能創建一個數組,因爲我不知道用戶可能希望輸入多少個數字,這意味着我不能給它一個確定的大小。
其次,我的程序當前創建平均值的方式是循環遍歷數組中的元素,並將其連續添加到一個整數,從中得出平均值。如果我無法確定數組,則無法指定循環的限制以繼續運行。
希望我的例子能更好地解釋這一點。
#include <stdio.h>
#include <string.h>
void main()
{
int i = 0;
int arrayNum[5];
int temp = 1;
int anotherTemp = 0;
int answer = 0;
printf("Enter as many numbers as you like, when finished enter a negative number\n");
for(i = 0; i < 5; i++)
{
scanf("%d", &temp);
arrayNum[i] = temp;
anotherTemp = anotherTemp + arrayNum[i];
}
answer = anotherTemp/5;
printf("Average of %d,%d,%d,%d,%d = %d",arrayNum[0],arrayNum[1],arrayNum[2],arrayNum[3],arrayNum[4],answer);
}
雖然這可能不是實現它的最好方法,但它在預先指定數量的數量時工作。
解決此問題並允許用戶輸入儘可能多的數字的最佳方法是什麼?
編輯:雖然我需要使用一個數組,但我決定這不是必須的,因爲解決方案在不受限制的情況下簡單得多。
你真的有三個問題在這裏。一個是處理未指定長度的輸入,第二個處理動態數組,第三個是如何最好地形成平均值(答案是你不需要爲* this *目的存儲數據)。我認爲所有這些觀點都在下面的答案中得到了解答,並且在網站的其他地方肯定會涉及。 – dmckee 2010-01-30 23:33:45
我知道我不需要將數字存儲在數組中以形成平均值,我只是簡單地指示嘗試使用數組來完成它。 – 2010-01-31 17:47:04