0

正しい方向に少し押すだけです。まず、ポインタを理解するのに問題があります。これは、参照している別の変数を指す変数のようなものです。私には正しくないようですが:S

次に、void関数に問題があり、void関数は何も返すことができません。宿題では、後でprintステートメントで使用されるプロセスを実行するためにvoid関数を使用する必要があります。ここでの問題は、void関数では何も印刷できないため、main関数で印刷する必要があるということです。void関数は何も返さないため、メインの印刷で使用するためにデータをどのように戻すのかわかりません。これが私が使っている関数の例です。

void fx1(int d[][5], int rows, int* colIndex, int* maxSum);

どこ:

  • dはデータの配列です
  • rowsはdの行数です
  • colIndexは、合計が最大の列の列インデックスを格納するためのアドレスです。
  • maxSumは、最大列合計を格納するためのアドレスです。

この関数の目的は、配列内の数値のセットを取得することです。

55、8、12、6、-1

-10、4、7、5、-6

-20、0、15、4、-2

合計が最大の列を計算して見つけます。

これで、その背後にあるロジックがわかりました。最終結果を返す方法がわからないため、メインで使用または印刷できます。また、この場合はポインターを使用する必要があります(もちろん、ポインターを使用する必要があります。この割り当ては明らかにポインタを学習するためのものです)。

4

1 に答える 1

1

sum次のような関数を定義できます。

void sum(int a, int b, int *result) {
    *result = a + b;
}

これをメインで使用します:

int main() {
    int result;

    sum(1, 5, &result);

    printf("%d\n", result);

    return 0;
}

お役に立てれば。

于 2013-02-22T01:14:56.247 に答える