[解決済み] モンキービジネスc++ [重複]
2022-03-03 17:53:24
質問
古い教科書を使って独学でC++を学ぼうとしているのですが、ご意見をお聞かせください。オンラインでプログラムの動作するコードを見つけることができますが、全く異なるアプローチを試す前に自分のコードを動作させたいと考えています。
3x7の2次元配列を使って、3匹のサルが1週間を通して食べた毎日の食料を保持するプログラムを書きたいのですが、どうすればいいですか?
一日の食物消費量の平均値、一週間の食物消費量が最も少ないサル、一週間の食物消費量が最も多いサルを出力する必要があります。
getLeast関数は、その名の通り、サルの中で最も少ない週間食料消費量を取得するものですが、それ以外は今のところすべて動作します。しかし、getMost関数は問題なく動作しているのに対し、getLeast関数は0を出力します。
また、私のコードの改善や効率化についてアドバイスいただけるようなコメントをお待ちしています。お読みいただきありがとうございました。
以下は私のコードです。
#include<iostream>
using namespace std;
const int numberRows = 3;
const int numberCol = 7;
void getData(int array[][numberCol], int);
double getAverage(int array[][numberCol], int);
int getRowSum(int array[][numberCol], int);
double getAverage(int array[][numberCol], int);
int getLeast(int, int, int);
int getMost(int, int, int);
int main()
{
int monkeys[numberRows][numberCol];
int monkey1 = 0, monkey2 = 1, monkey3 = 2, monk1Total, monk2Total, monk3Total, largest, smallest;
getData(monkeys,numberRows);
monk1Total = getRowSum(monkeys, monkey1);
monk2Total = getRowSum(monkeys, monkey2);
monk3Total = getRowSum(monkeys, monkey3);
smallest = getLeast(monk1Total, monk2Total, monk3Total);
largest = getMost(monk1Total, monk2Total, monk3Total);
cout << "The average daily food consumption by the monkeys was " << getAverage(monkeys, numberRows)/3 << "." << endl;
cout << "The smallest amount of food eaten by one monkey in a week was: " << smallest << "."<<endl;
cout << "The largest amount of food eaten by one monkey in a week was: " << largest << "."<<endl;
}
void getData(int monkeys[][numberCol],int numberRows)
{
for (int rows = 0; rows < numberRows; rows++)
{
cout << "Monkey " << (rows + 1) << endl;
for (int cols = 0; cols < numberCol; cols++)
{
cout << " Day " << (cols + 1) << ": ";
cin >> monkeys[rows][cols];
while (monkeys[rows][cols] < 0){
cout << "Cannot accept negative numbers, please try again: ";
cin >> monkeys[rows][cols];}}
cout << endl;}}
int getRowSum(int monkeys[][numberCol], int monkeyNum)
{
int total = 0;
for (int rows = 0; rows < monkeyNum; rows++)
{
for (int cols = 0; cols < numberCol;cols++)
total += monkeys[rows][cols];}
return total;
}
double getAverage(int monkeys[][numberCol], int numberRows)
{
double total = 0;
for (int cols = 0; cols < numberCol; cols++){
for (int rows = 0; rows < numberRows; rows++)
total += monkeys[rows][cols];}
return (total/(numberCol));
}
int getMost(int monkey1, int monkey2, int monkey3){
int array[3]{monkey1, monkey2, monkey3};
int max = array[0];
for (int count = 0; count < 3; count++)
{
if (array[count] > max)
{
max = array[count];
}}
return max;
}
int getLeast(int monkey1, int monkey2, int monkey3)
{
int array[3]{monkey1, monkey2, monkey3};
int min = array[0];
for (int count = 0; count < 3; count++)
{
if (array[count] < min)
{
min = array[count];
}
}
return min;
}
解決方法は?
のロジックは
getRowSum
は欠陥があります。使用する
int getRowSum(int monkeys[][numberCol], int monkeyNum)
{
int total = 0;
for (int cols = 0; cols < numberCol;cols++)
total += monkeys[monkeyNum][cols];
return total;
}
それを直せばもう一つの問題が解決するのかどうかはわからない。
関連
-
[解決済み】coutはstdのメンバではない
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された