質問: 整数配列dataに対し、その要素の数だけ*を表示するプログラムを作成したのですが、うまく行きません。 以前にも、整数配列dataに対して、その数を表示するプログラムは作成したことがあるのですが、その応用だと思って、最初は以下のようにプログラムを作成しました。 ``` #include void readIntArray(int a[], int size) { int i; for(i=0;i
回答: gccが以下のエラーを出力しました: > > main.c:25: error: too few arguments to function 'printIntArray' > > > 25行目を見ると、`printIntArray(i);`の入力引数が一つで、関数定義`void printIntArray(int a[], int size)`と不一致です。 【変更を始めます】 `main`に関数の呼び出しが期待している出力と違いです。 「`X番目? X`」の行は`readIntArray`関数で、「`a[X]:X`」の行は`put_AstArray`関数で出力したんです。`printIntArray`関数は`data`アレイに保存する各入力数字しかを出力しないです。ここに必要ない。 ``` readIntArray(data, size); // printIntArray(data, size); // <--- 必要ない put_AstArray(data,size); ``` `put_AstArray`関数に`for`ループをまた一つ追加します。 `i`変数のループ範囲は`main`関数の最初に入力した`n`の値です。 `j`変数のループ範囲は`X番目`に入力した`*`の数です。期待している数の`*`を出力ためです。 ``` void put_AstArray(int a[],int size) { ///////////////////////// // int i; // for(i=0;i