[ad_1]
ねえ! 家族を作ろう! ちょっと待って、ごめんなさい、それは間違って出てきました、私は数学を通して意味していました. 配列をあげるとすれば、父と息子が誰なのかわかるようにしてほしい。 父親は可能な最大の金額であり、息子は可能な限り最小の金額です。 どちらも、配列の 3 つの要素のみを使用して識別されます。
入力
最初の行には、整数配列のサイズが含まれています。
後続の行には、配列内の値が含まれています。
制約:
– サイズ >= 3
– 各要素 = -2147483648
私が試したこと:
#include <stdio.h> void main() { int arraysize; scanf("%d", &arraysize); int arr[arraysize]; int sum; int largest; int smallest; for(int i=0; i<arraysize; i++) { scanf("%d",&arr[i]); } for(int i=0; i<arraysize; i++) { for(int n=i+1; n<arraysize; n++) { if(arr[i]>arr[n]) { sum = arr[i]; arr[i]=arr[n]; arr[n]=sum; } } } for(int i=0; i<arraysize; i++) { smallest += arr[i]; largest += arr[arraysize - i - 1]; } printf("%d\n", largest); printf("%d", smallest); }
解決策 1
あなたはどのような価値観を持っていますか largest
と smallest
合計はで始まりますか? それらに価値を与えますか? なぜだめですか? そうでない場合、それらに追加しようとすると何が含まれますか?
また、合計ループがすべての要素を調べているのはなぜですか? 課題はいくつ見る必要がありますか?
正直なところ、デバッガーを 1 分ほど使用すると、問題が何であるかが正確にわかります。テストのためにデバッガーでコードを実行することに慣れれば、大幅な時間を節約できます。
だから、それはあなた次第になるでしょう。
幸いなことに、何が起こっているのかを調べるのに役立つツール、デバッガーを利用できます。 使用方法はコンパイラ システムによって異なりますが、IDE と「デバッガ」の名前を Google で検索すると、必要な情報が得られます。
関数の最初の行にブレークポイントを置き、デバッガーでコードを実行します。 次に、コードとデータを見て、何が起こるべきかを手動で解決します。 次に、各行を 1 ステップ実行して、予想どおりの動作を確認します。 そうでない場合は、問題が発生したときであり、後戻りして (またはもう一度実行して詳しく調べて) 原因を突き止めることができます。
申し訳ありませんが、私たちはあなたにそれを行うことはできません – 新しい (そして非常に便利な) スキルを学ぶ時が来ました: デバッグ!
[ad_2]
コメント