2012-11-08 2 views
0
#include <iostream> 
using namespace std; 

const int monkeys = 3; 
const int weekdays = 7; 
double monkeyWeek[monkeys][weekdays]; 
double largest; 
double least; 
double average; 
int index; 
int dayCount; 
double amount; 



double amountEaten(double[] [weekdays], int); 
double mostEaten (double[] [weekdays],int); 
double leastEaten (double[][weekdays], int); 

int main(){ 
cout << "Ch 7-4 Monkey " << endl; 
cout << "Created by Aaron Roberts" << endl; 

double mostBananas (double[] [weekdays],int); 
double leastBananas (double[][weekdays],int); 
//double bananaAverage (double[][weekdays], int); 



} 


double amountEaten(double array[] [weekdays], int){ 
    cout << "Please enter the amount of food eaten per monkey per day." << endl; 
double amount = array[0][0]; 
for (index = 0; index < monkeys; index++) 
{ 
    for (dayCount = 0; dayCount < weekdays; dayCount++) 
    { 
    cout << endl <<"Please enter the amount of pounds eaten by  monkey"  
     <<(index +1) 
      << endl << "for day " << (dayCount +1) << ": "; 
     cin >> monkeyWeek[monkeys] [weekdays] ; 
     if (monkeyWeek[monkeys] [weekdays] < 1) 
      cout << endl <<"Must feed positive amount" << endl; 
    } 


} 
} 

double mostEaten(double array[] [weekdays], int size) 
{ 
double largest = array[0][0]; 
for (int count = 0; count < size; count++) 
{ 
    for (int col = 0; col < count; col++) 
    { 
     if (array[count][weekdays] > largest) 
      largest = array[count][weekdays]; 
    } 
} 
return largest; 
} 

double leastEaten(double array[] [weekdays], int size) 
{ 
double least = array[0][0]; 

for (int count = 0; count < size; count++) 
{ 
for (int col = 0; col < size; col++); 
{ 
if (array[count][weekdays] < least) 
least = array[count][weekdays]; 
} 
} 
return least; 
} 

이 프로젝트에서는 일주일에 7 일마다 3 마리의 원숭이가 섭취하는 음식 파운드를 저장하기 위해 2 차원 배열을 사용해야합니다.C++ 함수 및 배열에 붙어 있지 않음

각 원숭이에 대해 매일 먹은 파운드를 얻는 함수를 만듭니다. 배열을 통과하여 먹은 모든 돈의 총계를 계산 한 다음 하루에 먹은 평균을 계산하는 두 번째 함수를 만듭니다. (일부는이를 합계 값으로 해석 한 다음 값 수로 나누었고, 다른 사람들은 이것을 매일의 값 합계와 그 날의 평균 계산으로 해석 했으므로 하나가 아니라 7 행의 출력이있을 것입니다.)

가장 적은 양의 음식을 먹은 원숭이와 그 날을 결정하는 세 번째 기능을 만듭니다. 또한 그날 원숭이가 먹은 양을 출력하십시오. 하루에 가장 많은 양의 음식을 먹은 원숭이를 결정하는 네 번째 기능을 만듭니다. 원숭이 번호, 먹은 파운드 및 평일을 출력하십시오.

저는 C++을 처음 접했고 막혔습니다.이 작업을 완료하는 방법을 모릅니다. 어떤 도움을 주셔서 감사합니다 정말 감사드립니다.

+3

가 지금까지 달성 무엇을 잘못했는지 설명 : 여기에 약간의 수리 루프입니다. 이렇게하면 다른 사람들이보다 쉽게 ​​도움을받을 수 있습니다. –

+0

안녕하세요, StackOverflow에 오신 것을 환영합니다. 그래서. 당신을 위해 숙제를하러 온 것이 아닙니다. 전체 구현과 원래 작업을 덤프하는 대신 문제가 정확히 걸린 곳으로 문제를 줄이십시오. – bitmask

+0

나는 +1을받은 방법을 모르겠다. "이 질문은 연구 노력을 보여 주며 유용하고 명확합니다." 연구 노력이나 유용하거나 명확한 것도 없습니다. – ApplePie

답변

1

당신은 이런 종류의 일을 계속 :

for (int count = 0; count < size; count++) 
{ 
    for (int col = 0; col < count; col++) 
    { 
     if (array[count][weekdays] > largest) 
      largest = array[count][weekdays]; 
    } 
} 

는 인덱스에 weekdays 배열을 사용하는 참조하십시오. 그러나 그 색인은 유효하지 않습니다. 일종의 작업 일지 모르지만 항상 다음 행의 첫 번째 요소를 반환합니다 (마지막 행에서 더 명확한 정의되지 않은 동작을 가짐).

weekdays 대신 여기 col을 사용해야합니다.

Comments에서 지적한 것처럼 WhozCraig도 전체 weekdays 범위를 반복해야 할 것입니다. 다른 곳이 짓을했는지에 대한 유사

for (int count = 0; count < size; count++) 
{ 
    for (int col = 0; col < weekdays; col++) 
    { 
     if (array[count][col] > largest) 
      largest = array[count][col]; 
    } 
} 

...

+1

+1 : 그리고 나는 col-for-loop가 0에서 평일이어야한다고 확신합니다. – WhozCraig

+0

그 점에 대해 감사드립니다 - 그에 따라 편집했습니다 ... 저는 루프의 논리에 대해 정말로 생각하지 않았으며 명백한 no-no 만 주목했습니다. =) – paddy

관련 문제