目前我的程序允许用户输入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