최대 10 개의 숫자에 대한 산술 평균 및 표준 편차를 계산하는 프로그램을 만들어야합니다. 또한 사용자가 숫자 0을 입력 할 때 추가 입력이 중지됩니다. 크기가 10 인 배열을 사용하려고 시도했지만 그 다음에는 숫자 합계가 다음과 같이 나뉘어지기 때문에 산술 평균을 계산하는 올바른 방법을 찾지 못했습니다. 매 10 회. 비록 10 개 미만의 숫자를 입력 했는데도. 이 시나리오에서 다른 접근 방식을 사용해야하고 배열을 사용하지 않아야하는지 알고 싶습니다. 참고 : 이것은 과제물이므로 목록을 사용할 수 없습니다.사용자가 1과 10 사이의 숫자를 제공해야한다면 배열 또는 while 루프를 사용합니까?
답변
당신이 아래의 크기 (10)의 두 배의 배열을 만드는 경우 :
double[] array = new double[10];
다음 배열의 모든 항목이 제로
double
의 디폴트 값을 갖는다.
사용자가 0을 입력하면 위의 배열에 저장되지 않고 프로그램이 다른 입력을 중지하기 때문에 array
의 0이 아닌 값은 평균에 포함되어야하는 값입니다.
당신이 평균을 계산하기 위해, 다음을 시도 할 수 있다고 말했다되고 그건 :
double sum = 0;
int numbers = 0;
for(index=0; index<array.Length; index++)
{
if(array[index]==0)
{
break; // from this index and above all numbers are zero.
}
// The current sum of numbers you have processed.
sum = sum + array[index];
// The numbers you have processed
numbers = numbers + 1;
}
double mean;
if(numbers > 0)
{
// The user has given at least one non zero number.
mean = sum/numbers;
}
당신이 위의 표준 편차의 calcuation을 만들 수 기준으로합니다.
당신은
제로 변수 "카운터"를 초기화하고 증가 입력 한 전화 번호 수를 추적 할 변수를 사용해야마다 사용자가 0
는 다음의 "를 사용하는 것보다 다른 뭔가를해야만 입력 카운터 "변수의 값을 N (항목 수 또는 관측 수)로 계산하십시오 (예 : 평균값을 구하려면 카운터의 값으로 숫자의 합계를 나눕니다).
while
루프를 사용하면 명시 적으로 백 트랙킹하지 않고도 오류를 처리 할 수 있습니다.
다음 입력을 요청하기 전에 사용자 입력을 처리 할 수 있도록 yield return
을 사용했습니다. 즉, 애플리케이션의 기능에 반드시 영향을 미치지 않으면 서 (진행 및 메모리 소비와 관련하여) 입력의 개수를 제한없이 가질 수 있습니다. GetInputs().Take(10).TakeUntil(x => x == 0)
을 사용하여 원하는 값의 수를 나타낼 수 있습니다.
IEnumerable<int> GetNumbers()
{
while (true)
{
try
{
Console.Write("Enter a number: ");
var text = Console.ReadLine();
var value = int.Parse(text);
yield return value;
}
catch (Exception ex)
{
Console.WriteLine("That'a not a number!");
}
}
}
은 그것이 열거 가능한 내부 IO를하고있어 이후, 방법에 Console
인라인을 갖는 약간 이상한 느낌,하지만 그건 그냥 날 수 있습니다. 보다 융통성 있고 명시 적으로 만들고 싶다면 print/read as 함수를 삽입 할 수 있습니다.
숫자를 처리하려면 .ToArray();
을 사용할 수 있습니다.이 숫자는 사용자가 입력 한 입력의 크기에 비례하여 int [] 배열을 제공합니다.
- 1. While 루프를 통해 배열
- 2. C++ '|'가있는 숫자를 읽는 while 루프를 종료합니다.
- 3. Python : 1에서 10 사이의 입력을 얻으려면 어떻게해야합니까? 1과 10 사이의 숫자, 그러나 그것은 출력 됨
- 4. if..else와 함께 1과 100 사이의 숫자를 확인하는 방법
- 5. C에서 do-while 루프를 사용하여 사용자가 입력하는 최대 10 개의 요소를 저장하는 배열을 얻으려면 어떻게해야합니까?
- 6. TextBox.Text.Length가 1과 10 사이인지 확인
- 7. 사용자가 무언가를 입력하면 while 루프를 인터럽트하는 방법
- 8. while 루프를 사용하여 사용자가 요청한 횟수만큼 인쇄하십시오.
- 9. 플래시 슬라이더는 1과 360 사이의 숫자를 누락합니다 .... 왜?
- 10. 레일 사이의 배열 사이에 루프를 삽입하십시오.
- 11. WHILE 루프를 사용하는 10 개의 난수의 합 - Java
- 12. While 루프를 while 루프를 통해 사용하기
- 13. for, while 또는 do-while 루프를 사용하는 경우/시작하는 방법
- 14. while 루프를 사용하여 배열 채우기 PHP
- 15. 루프를 사용하여 목록에 숫자를 표시하십시오 (feat 배열)
- 16. 매주 while 루프를 실행하십시오.
- 17. 두 숫자를 1과 0으로 비교하십시오.
- 18. while 루프를 작동시키는 방법?
- 19. while 루프를 음수로 종료합니다.
- 20. 문자열 또는 정수 연산없이 while 루프를 사용하여 숫자를 반전하는 방법은 무엇입니까?
- 21. System.OutOfMemoryException을 일으키는 저장 프로 시저에서 while 루프를 사용합니까?
- 22. 2와 10 사이의 임의의 밑수의 두 숫자를 뺍니다.
- 23. foreach 또는 while 루프를 수행하지 않습니다.
- 24. 자바의 do-while 루프에서 while 루프를 변환하십시오.
- 25. while 루프를 반복하지 않는 while 루프
- 26. while 루프를 goto로 바꾸시겠습니까?
- 27. Meteor : While 루프를 사용하여 템플릿
- 28. while 루프를 입력하지 않습니다.
- 29. while 루프를 사용하여 clock while 루프를 사용하여 파일을 읽으십시오.
- 30. -1과 1 사이의 필터 값은
0은이 배열에 입력 할 수있는 유효한 숫자입니다. 또는 양의 정수만 입력해야합니까? – Christos
양수와 음수의 이중 숫자가 모두 허용되지만 0을 사용하는 경우 프로그램에서 입력이 중지되고 숫자 0을 포함하지 않고 산술 평균 및 표준 편차를 계산해야합니다. – Fihii
그래서 0 이외의 항목 만 합산하고 계산합니다. – Slai