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;
} 

このプロジェクトでは、2 次元配列を使用して、3 匹のサルが週 7 日間それぞれ食べた数ポンドの食物を保存する必要があります。

各サルが曜日ごとに食べたポンド数を取得する関数を作成します。2 つ目の関数を作成して、配列を通過するパスを決定し、食べたお金の合計を計算してから、1 日に食べた平均を計算します。(これをすべての値を合計してから値の数で割ると解釈した人もいれば、各日の値を合計してその日の平均を計算したと解釈した人もいました。したがって、1 行だけでなく 7 行の出力があることになります。 )

3 番目の関数を作成して、どのサルが最も少ない量の食物をどの日に食べたかを判断します。また、サルがその日に食べた量も出力します。4 番目の関数を作成して、1 日に最も多くの量を食べたサルを特定します。サルの数、食べた体重、曜日を出力します。

私はC ++が初めてで、立ち往生していて、これを完了する方法が本当にわかりません。助けてくれてありがとう、本当に感謝しています。

4

1 に答える 1

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配列のインデックスに使用していることを確認してください。しかし、そのインデックスは無効です。それは一種の仕事かもしれませんが、常に次の行の最初の要素を返します(そして、最後の行でより明確な未定義の動作をします)。

colhereの代わりに使用するつもりだったと確信していweekdaysます。

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];
    }
}

同様に、これを行った他のすべての場所について...

于 2012-11-08T01:13:01.653 に答える