0

この種のものを行う方法を理解するのにいくつか問題があります。配列の値を取得する整数を宣言するような論理部分を実行する関数を既に作成しました[i]。この番号は配列からランダムに選択されます(私は思います)。とにかく、ここに私が行ったコードがあります:

void array_test( int arr[]  , int size)
{
    int i;
    int random_number;

    for(i = 0; i<size; i++){
         random_number = (rand() %15 + 1);
         arr[i] = random_number;
    }

}

ここで私の質問は、別の関数を使用して結果を出力する方法です (コードは機能し、1 から 15 までの 15 の異なる数値を出力します。サイズを 15 に定義し、関数プロトタイプ パラメーターにあります)。この関数は、char output[]1 つのパラメーター、 type の配列int、および type のサイズを受け取りますint。このように見えoutput_result(char output[], int arr[], int size)ます。

問題は、前の関数からこれまでのものを呼び出して、それをユーザーに表示する方法を理解していないことです。これが課題であることは認めますが、多くのことを試しましたが、何もうまくいきません。問題は、for ループを使用してすべての配列 (?) 値を出力する必要があることです。めちゃくちゃになるのはここです。つまり、関数 array_test からコードをコピーして貼り付けることによって、ホイールを再度作成しようとしましたが、関数 array_test を実装する必要はありません。次の代入までポインタは使用されません。

主な機能は次のとおりです。

int main() {
  int arr[SIZE]; 

  srand(time(0)); 
  array_test(arr, SIZE);
  print_array("This is an array\0", arr, SIZE);

  return 0; 
}
4

2 に答える 2

4

配列全体を印刷する場合は、次の操作を実行できます。

編集:あなたが私たちに与えたあなたの主な機能に基づいて、あなたのprint_values_ver1機能は次のようになります:

メイン関数で配列サイズを見つけるには、次のようにします。

int size = sizeof(array) / sizeof(array[0]);

次に、次のような印刷機能を渡します。

print_values_ver1("Some text\0", arr, size);

関数定義は次のようになります。

print_values_ver1(char[] output, int arr[], int SIZE) {

    for (int z = 0; z < SIZE; z ++) {
        printf("%d\n", arr[i]);
    }
}

は関数%dの書式指定子であることに注意してください (ドキュメントを参照してください)。そしてキャラクターです。printf\nnewline

このコードは、配列の各要素を繰り返し処理し、値を出力します (1 行に 1 つの値)。

于 2013-10-20T21:43:59.960 に答える
1

このように:(インラインのコメントは理由を説明します-)

[編集]追加output_results()

#include <ansi_c.h>

void array_test( int arr[]  , int size);
void output_result(int a[], int size);

int main(void)
{
    int arr[15]; 
    int size = sizeof(arr)/sizeof(arr[0]);
    array_test(arr, size);
    output_result(arr, size); 
    getchar();
    return 0;   
}

void output_result(int a[], int size)
{
    int i=0;
    for(i=0;i<size;i++) printf("a[%d] is:%d\n", i, a[i]);
}

void array_test( int arr[]  , int size)
{
    int i;
    int randomly_picked_number;


    for(i = 0; i<size; i++){
         randomly_picked_number = (rand() %15 + 1);
             arr[i] = randomly_picked_number;



    }

}
于 2013-10-20T21:46:48.343 に答える