• 締切済み

ポインタについて

ポインタ配列を用いて最高点と平均点を求めるプログラムを作りたいと考えています。 配列の中身…45,78,56,35,47,98,-999 ※-999はデータの終わり ポインタ配列を使わないのならばすぐに解けるのですが… 考え方やソースなど教えてくれれば助かります。 よろしくお願いします。

みんなの回答

  • yama5140
  • ベストアンサー率54% (136/250)
回答No.7

>ポインタ配列を用いて  ポインタを用いて、ではないですか。   ☆だって1クラス分しかないよね、データは。 なお、printf( "最高点:%d 平均点:%3.1f\n", max, (double)sum / nin );  の %3.1f だけど、3 が何を意味するか下で確認して下さい。  http://www.k-cube.co.jp/wakaba/server/format.html -------------------------------------- #include <stdio.h> void main() {  int iTen[ 7 ] = { 89, 34, 67, 65, 67, 55, -999 };  int *a, nin, sum, max;  sum = 0;  max = 0;  nin = 0;  a = iTen; // 1人目のデータが入っている場所= &iTen[ 0 ]  while( *a > 0 ){   nin++;   if( *a > max ) max = *a;   sum += *a;   a++; // 次の人  }  printf( "最高点:%d 平均点:%5.1f\n", max, (double)sum / nin ); } 注:インデントに全角空白を用いています。タブに一括変換して下さい。

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.6

>それを参考にして下のように考えてみました。 コンパイルエラーになりませんか?

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.5

「ポインタ配列」じゃなくて、「ポインタと配列」の間違いってことはないでしょうか?

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.4

おんなじような課題をやっている人が居ますので、参考にされては? # 丸写しで提出するのも一つの方法です。 # 勉強する気はない。という表明にはなるでしょう。

参考URL:
http://oshiete1.goo.ne.jp/qa4091199.html
xxs2xx
質問者

補足

それを参考にして下のように考えてみました。 最高点は出るのですが、平均点がうまくでませんでした。 #include <stdio.h> void main(void) { static int *a[] = { 89, 34, 67, 65, 67, 55, -999}; int i, nin,sum, max; sum = 0; max = 0; nin = 0; for(i=0;i<6;i++,nin++){ if (a[i] > max) { max = a[i]; } sum = sum + a[i]; } printf("最高点:%d 平均点:%3.1f\n",max,(double)sum/nin); return 0; }

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.3

>ポインタ配列を使うことになっているんです。。。 ポインタ配列とは、各要素がポインタ型になっている配列という意味でしょう? 必要なのは各要素が int 型の配列だけだと思いますよ。使えと言われても困る。

回答No.2

ポインタ配列の作成方法が分からないのですか? Cであればmalloc、C++であればnewを使えば配列の要素数分のメモリ領域を簡単に確保できます。 例: int buf[BUFSIZE]; のような配列を作成したいのであれば、 int* buf; buf = malloc( sizeof(int) * BUFSIZE ); か、 buf = new int[BUFSIZE]; とすれば良いです。 あとは普通の配列と同じように処理すればいいのではないでしょうか。 ちなみに、mallocやnewで獲得されたメモリは自動的には解放されないので明示的に解放してあげましょう。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>ポインタ配列を使わないのならばすぐに解けるのですが ならそれでいいじゃん。

xxs2xx
質問者

補足

ご回答ありがとうございました。 ポインタ配列を使うことになっているんです。。。