• ベストアンサー

配列の使い方分かりません

//整数型の配列を10個準備する。 //ループ文を用いてキーボードから値を10個入力する。(for文を用いる) //入力した値を出力する。 //ループ文を用いて入力値の合計と平均値を求める。(while文を用いる) 以上の課題が出されました。 配列の使い方が分からないので上手くできません。 説明付だとうれしいです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#119918
noname#119918
回答No.3

stdafx.hは不明でしたので無視します。 関数に分割していた機能をmain関数に集約すると下記の通りです。 (main関数に詰め込み過ぎな気もしますが。) #include <stdio.h> #define SIZE 10 int main(void) { int sum; int array[SIZE]; int i; for(i=0 ; i<SIZE ; i++) { printf("input number > "); scanf("%d" , &array[i]); } for(i=0 ; i<SIZE ; i++) { printf("%d " , array[i]); } printf("\n"); i = 0; sum = 0; while(i < SIZE) { sum += array[i]; i++; } printf("sum : %d\n" , sum); printf("ave : %d\n" , sum / SIZE); return 0; }

iw-tomoya
質問者

お礼

ありがとうございます!! こんな感じになるんですね♪ ガッコでは配列を int a[10] 見たいな感じに置いてるんですが、これはどう使えばいいんでしょう? #define SIZE 10 を使わない場合はどうなりますか? 次々に申し訳ないです。。。

その他の回答 (3)

noname#119918
noname#119918
回答No.4

>ガッコでは配列を >int a[10] >見たいな感じに置いてるんですが、これはどう使えばいいんでしょう? >#define SIZE 10 >を使わない場合はどうなりますか? #define SIZE 10 はマクロですから、単に文中のSIZEを10に置き換えるだけです。 マクロを使いたくないならば、文中のSIZEを全て10に書き換えれば 同じ動作をします。 ただ、例えば配列のサイズを10から5に変更したくなった場合、 文中の10を全て5に書き換えなければならなくなります。 その手間の軽減、及び書き換え忘れによるバグの回避のために、 SIZEというマクロを使っています。 マクロを使っていれば、単に #define SIZE 5 に書き換えれば良いわけです。

iw-tomoya
質問者

お礼

なるほど!これは便利ですね♪ いい学習になりました。今後こうしていきたいと思います どうもありがとうございました↑↑

noname#119918
noname#119918
回答No.2

#include <stdio.h> #define SIZE 10 // 整数を入力し、配列に格納 void input_num(int* array , int size) { int i; for(i=0 ; i<size ; i++) { printf("input number > "); scanf("%d" , &array[i]); } return; } // 配列に格納された値を出力 void output_num(int* array , int size) { int i; for(i=0 ; i<size ; i++) { printf("%d " , array[i]); } printf("\n"); return; } // 配列に格納された値の合計と平均を計算 void sum_ave(int* array , int size) { int sum = 0; int i = 0; while(i < size) // for文の方が自然ですが… { sum += array[i]; i++; } printf("sum : %d\n" , sum); printf("ave : %d\n" , sum / size); return; } int main(void) { int array[SIZE]; input_num(array , SIZE); output_num(array , SIZE); sum_ave(array , SIZE); return 0; }

iw-tomoya
質問者

お礼

具体例的に回答ありがとうございます。 #include "stdafx.h" #include <stdio.h> int main(void) { int i,a,sum=0,ave; for(i=1;i<=10;i++){ printf("数値を入力:"); scanf("%d",&a); sum=sum+a; ave=sum/10; } printf("\n合計:%d\n平均:%d\n\n",sum,ave); return 0; } 自分でこのプログラムを作ってます 配列を使ってないのでアウトなんですが。。。 こういった感じにシンプルにまとまりますかね?

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.1

言語はCでいいですかね? して、教えるのは「配列について」だけでよいですよね? 配列は変数が連なっているものというイメージでいいです。 たとえば宣言で int hoge; でint型のhogeという変数が一つできます。 int hoge[10]; でint型のhoge[0]~hoge[9]の10個の変数ができます。 ※hoge[10]には値は入れられません。 単純にそれだけの話です。 変数を値を入れることのできる箱という認識にして [ ]であらわすとしたら int hoge; で作った場合 hoge [ ] ができて int hoge[3]; で作った場合 hoge[0] hoge[1] hoge[2] [ ] [ ] [ ] ができると思えばいいです。

iw-tomoya
質問者

お礼

早速回答ありがとうございます。言語はCです。 その基本的なことは大体分かっているつもりなんですが。。。 それをどうプログラムに利用したらいいのかがイマイチです 汗 講義でも具体例がでないのでぱっとしなくて。。。

関連するQ&A

専門家に質問してみよう