私のコードのロジックはどこが間違っていますか?

ダムファウンデッド

私の英語をご容赦ください。

Cの入門コースを受講していますが、プログラムのロジックに問題があります。必要な出力が生成される場合があります。

タスクは、配列の要素を受け取り、要素内の最大の偶数桁を返す関数を作成することです。

int ary1[] = {123, 456, -7890, 12};最大の偶数桁とその出現として-7890最大値として返さ8ます。最大の偶数桁とその出現として最大値として
int ary2[5] = {-123, 654, 78, 15, 189};返さ1898ます。
int ary3[2] = {9, 9};何も返しません。最大の偶数桁とその出現として最大値として
int ary4[] = {123, 123, 0, 12};返さ1232ます。最大の偶数桁とその出現として最大値として
int ary5[] = {24, 45, -789, 24, 1};返さ-7898ます。最大の偶数桁とその出現として最大値として
int ary6[] = {-749, -241, 1, 45};返さ454ます。

これが私のコードです:

#include <stdio.h>

void digitExtract(int[], int);

int main() {

    int ary1[] = { 123, 456, -7890, 12 };
    int ary2[5] = { -123, 654, 78, 15, 189 };
    int ary3[2] = { 9, 9 };
    int ary4[] = { 123, 123, 0, 12 };
    int ary5[] = { 24, 45, -789, 24, 1 };
    int ary6[] = { -749, -241, 1, 45 };
    int ary7[] = { 1, 3, 5 };

    printf("\nCalling function in ary1[]:\n");
    digitExtract(ary1, 4);
    printf("\nCalling function in ary2[]:\n");
    digitExtract(ary2, 5);
    printf("\nCalling function in ary3[]:\n");
    digitExtract(ary3, 2);
    printf("\nCalling function in ary4[]:\n");
    digitExtract(ary4, 4);
    printf("\nCalling function in ary5[]:\n");
    digitExtract(ary5, 5);
    printf("\nCalling function in ary6[]:\n");
    digitExtract(ary6, 4);
    printf("\nCalling function in ary7[]:\n");
    digitExtract(ary7, 3);
}

void digitExtract(int Array[], int array_size) {

    int tempValue;
    int x;
    int myArr[10] = { 0 };
    int evenCount = 0;

    int max = Array[0];

    for (int i = 1; i < array_size; i++)
    {
        if (Array[i] < 0) {
            Array[i] = -Array[i];
            if (Array[i] > max) {
                max = Array[i];
            }
        }

    }

    tempValue = (max < 0) ? -max : max;

    do {
        myArr[tempValue % 10]++;
        tempValue /= 10;
    } while (tempValue != 0);



    for (x = 8; x > 0; x -= 2) {
        if (myArr[x]>0) {
            printf("Displaying from inside of function():\n");
            printf("\nThe largest even digit: %d\n", x );
            printf("\nThe digit %d occurs %d times.\n", x, myArr[x]);

            evenCount++;
            break;
        }

    } if (evenCount == 0)
        printf("\nNo even digits found!\n\n");

}

ロジックにエラーがありary2[]、の偶数桁が生成され、6必要なときに発生することは8わかっていますが、どこにあるのかわかりません。

この関数は、要素として奇数の値を持つ配列に対して機能します。

どこで、または何が間違っているのですか?

ありがとうございました。

自閉症

あなたの仕事は...そして、その数字を持っている最大値を見つけ、最大でも数字を見つけることですではない、その後、最大値を見つけ、その中で最大でも数字を見つけます。

まずmax_even_digit、単一の関数を操作するように名前付けた関数を記述しint、それを検証してそこから作業します。

int max_even_digit(int x) {
    int max = 0;
    while (x) {
        int digit = x % 10;
        digit = digit < 0 ? -digit : digit;
        if (x % 2 == 0 && digit > max) {
            max = digit;
        }
        x /= 10;
    }
    return max;
}

これを行ったら、最大値を見つけるかのように配列をループしますが、の戻り値がmax_even_digit実際の値よりも優先されるようにします。

int max_even_digit_value(int *array, size_t size) {
    if (size == 0) {
        return 0;
    }

    int max_value = array[0],
        max_digit = max_even_digit(max_value);
    while (--size) {
        int value = array[size],
            digit = max_even_digit(value);
        if (digit > max_digit || (digit == max_digit && value > max_value)) {
            max_value = value;
            max_digit = digit;
        }
    }

    return max_value;
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

私のプロジェクトとこれらのJavaScriptフレームワークのどこが間違っていますか?

分類Dev

私はコードブロックにかなり慣れていません。このエラーに多くの時間を費やしました。誰かがこのコードの私の間違いを指摘できますか?

分類Dev

私の質問のどこが悪いのか誰かに教えてもらえますか?登録ページでファイルをアップロードすると、間違ったクエリと表示されますか?

分類Dev

次のLPコードのどこが間違っていますか?

分類Dev

読者-Cの作家-私はどこが間違っていますか?

分類Dev

私の考えはどこが間違っていますか?ブラウザは単純な<div>ボックスをスケーリングします

分類Dev

このPythonコードのどこが間違っているのですか?

分類Dev

ポインター関連のUE4クラッシュ。私のポインタはどこが間違っていますか?

分類Dev

私のループロジックは間違っていますか、それとも私のクエリですか?

分類Dev

私のコードは間違っていますか?答えが見つからないようです

分類Dev

私はVB.netでユークリッドのアルゴリズムを書いていますが、何らかの理由でそれが機能しておらず、私の論理が正しいと確信しています。どこが間違っているのですか?

分類Dev

どうして私の数学コードはいつも私の答えが間違っていると言っているのですか?

分類Dev

Gitのコミット数が間違っていますか?私は何を間違えますか?

分類Dev

オブジェクトのハッシュコードをすべてのクラス変数のハッシュコードの合計、乗算などとして定義することは間違っていますか?

分類Dev

どうやらコンダはいくつかの非常に一般的なパッケージを見つけることができません:私は何が間違っているのですか?

分類Dev

私はどこが間違っていますか?

分類Dev

誰かが私が書いたこのPythonコードをスキャンして、私が間違ったことを教えてもらえますか?

分類Dev

私はopencv-python画像処理を学んでいるので、この小さなコードを書きましたが、どこが間違っているのかわからないというエラーが発生します

分類Dev

PHP、アップロードされた画像のURLはデータベースに保存されません。どこが間違っているのですか?

分類Dev

ファイルのアップロードとファイルのダウンのコントロールが機能していません。以下のコードを添付しました。私が間違っているのは何ですか?

分類Dev

Mockitoの例外:私の推論はどこに間違っていますか?

分類Dev

私のコードは、XとYとZがリストにあるかどうかをチェックしませんが、1つだけがカバーされている場合は通過します。私は何が間違っているのですか?

分類Dev

比類のないブロックの入れ子がどこで間違っているかわかりますか?私はそれを見ることができないようですか?MASM

分類Dev

SQLクエリのどこが間違っていますか?

分類Dev

C#ハッカーランクコードは、30日間のコードでデータ型チャレンジで正しい結果を生成しますが、私は間違っていると言います

分類Dev

このコードが機能しないことはわかっていますが、見つけたコードが機能するのはなぜですか?何が間違ったコードを間違っているのですか?

分類Dev

ソートされたリンクリストの実装に関する私のロジックは間違っていますか?

分類Dev

私のパターンのどこが間違っていますか(Javaの正規表現)?

分類Dev

このJavaコードの短絡ロジックの何が問題になっていますか?

Related 関連記事

  1. 1

    私のプロジェクトとこれらのJavaScriptフレームワークのどこが間違っていますか?

  2. 2

    私はコードブロックにかなり慣れていません。このエラーに多くの時間を費やしました。誰かがこのコードの私の間違いを指摘できますか?

  3. 3

    私の質問のどこが悪いのか誰かに教えてもらえますか?登録ページでファイルをアップロードすると、間違ったクエリと表示されますか?

  4. 4

    次のLPコードのどこが間違っていますか?

  5. 5

    読者-Cの作家-私はどこが間違っていますか?

  6. 6

    私の考えはどこが間違っていますか?ブラウザは単純な<div>ボックスをスケーリングします

  7. 7

    このPythonコードのどこが間違っているのですか?

  8. 8

    ポインター関連のUE4クラッシュ。私のポインタはどこが間違っていますか?

  9. 9

    私のループロジックは間違っていますか、それとも私のクエリですか?

  10. 10

    私のコードは間違っていますか?答えが見つからないようです

  11. 11

    私はVB.netでユークリッドのアルゴリズムを書いていますが、何らかの理由でそれが機能しておらず、私の論理が正しいと確信しています。どこが間違っているのですか?

  12. 12

    どうして私の数学コードはいつも私の答えが間違っていると言っているのですか?

  13. 13

    Gitのコミット数が間違っていますか?私は何を間違えますか?

  14. 14

    オブジェクトのハッシュコードをすべてのクラス変数のハッシュコードの合計、乗算などとして定義することは間違っていますか?

  15. 15

    どうやらコンダはいくつかの非常に一般的なパッケージを見つけることができません:私は何が間違っているのですか?

  16. 16

    私はどこが間違っていますか?

  17. 17

    誰かが私が書いたこのPythonコードをスキャンして、私が間違ったことを教えてもらえますか?

  18. 18

    私はopencv-python画像処理を学んでいるので、この小さなコードを書きましたが、どこが間違っているのかわからないというエラーが発生します

  19. 19

    PHP、アップロードされた画像のURLはデータベースに保存されません。どこが間違っているのですか?

  20. 20

    ファイルのアップロードとファイルのダウンのコントロールが機能していません。以下のコードを添付しました。私が間違っているのは何ですか?

  21. 21

    Mockitoの例外:私の推論はどこに間違っていますか?

  22. 22

    私のコードは、XとYとZがリストにあるかどうかをチェックしませんが、1つだけがカバーされている場合は通過します。私は何が間違っているのですか?

  23. 23

    比類のないブロックの入れ子がどこで間違っているかわかりますか?私はそれを見ることができないようですか?MASM

  24. 24

    SQLクエリのどこが間違っていますか?

  25. 25

    C#ハッカーランクコードは、30日間のコードでデータ型チャレンジで正しい結果を生成しますが、私は間違っていると言います

  26. 26

    このコードが機能しないことはわかっていますが、見つけたコードが機能するのはなぜですか?何が間違ったコードを間違っているのですか?

  27. 27

    ソートされたリンクリストの実装に関する私のロジックは間違っていますか?

  28. 28

    私のパターンのどこが間違っていますか(Javaの正規表現)?

  29. 29

    このJavaコードの短絡ロジックの何が問題になっていますか?

ホットタグ

アーカイブ