【解決方法】父と息子が誰であるかを知るにはどうすればよいですか


ねえ! 家族を作ろう! ちょっと待って、ごめんなさい、それは間違って出てきました、私は数学を通して意味していました. 配列をあげるとすれば、父と息子が誰なのかわかるようにしてほしい。 父親は可能な最大の金額であり、息子は可能な限り最小の金額です。 どちらも、配列の 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

あなたはどのような価値観を持っていますか largestsmallest 合計はで始まりますか? それらに価値を与えますか? なぜだめですか? そうでない場合、それらに追加しようとすると何が含まれますか?

また、合計ループがすべての要素を調べているのはなぜですか? 課題はいくつ見る必要がありますか?

正直なところ、デバッガーを 1 分ほど使用すると、問題が何であるかが正確にわかります。テストのためにデバッガーでコードを実行することに慣れれば、大幅な時間を節約できます。
だから、それはあなた次第になるでしょう。
幸いなことに、何が起こっているのかを調べるのに役立つツール、デバッガーを利用できます。 使用方法はコンパイラ システムによって異なりますが、IDE と「デバッガ」の名前を Google で検索すると、必要な情報が得られます。

関数の最初の行にブレークポイントを置き、デバッガーでコードを実行します。 次に、コードとデータを見て、何が起こるべきかを手動で解決します。 次に、各行を 1 ステップ実行して、予想どおりの動作を確認します。 そうでない場合は、問題が発生したときであり、後戻りして (またはもう一度実行して詳しく調べて) 原因を突き止めることができます。

申し訳ありませんが、私たちはあなたにそれを行うことはできません – 新しい (そして非常に便利な) スキルを学ぶ時が来ました: デバッグ!

コメント

タイトルとURLをコピーしました