현재 내 프로그램에서는 평균 숫자를 만드는 데 사용되는 5 개의 정수를 입력 할 수 있습니다. 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
평균을 형성하기 위해 배열에 숫자를 저장할 필요가 없다는 것을 알고 있습니다. 단순히 배열을 사용하여 시도하고 지시하도록 지시 받았습니다. –