-3

重複の可能性:
C++ 関数と配列でスタックする

この問題で立ち往生しています: 私はそれを実行することができず、配列関数をメインに戻すことに行き詰まっています。助けてくれてありがとう。

3 匹のサルが週 7 日間それぞれ食べた数ポンドの食物を保存するために、2 次元配列を利用する必要があります。

各サルが曜日ごとに食べたポンド数を取得する関数を作成します。2 つ目の関数を作成して、配列を通過するパスを決定し、食べたお金の合計を計算してから、1 日に食べた平均を計算します。

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

#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(){
    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;
}
4

1 に答える 1

0

関数を宣言しているだけで、関数をまったく呼び出していません。以下のサンプルを使用して、それに応じてプログラムを変更してください。

例:

int main()
{
    int i_array={0,1,2,3,4,5};
    function(i_array);           //  Call a function
    printf("%d",i_array[0]);    // will print 100 not 0
}

void function(int []  i_array)
{
    i_array[0]=100;
}
于 2012-11-08T01:32:37.870 に答える