学生ゼミ資料 C言語6

C言語 配列
2016年 吉田研究室
前回の課題の解答
始めに出力するファイルの設定を行う
i:点数を読み込む回数
n:読み込んだ科目の総数
sum:読み込んだ科目の点数の総和
入力させた点数からif文によって成績を判定する
while文でctrl+Zが入力されるまで読み込み続けるように
設定している
if文で判定した際に,その点数と成績が出力される
while文の最後に点数の総和(sum)と科目数を求める
式を書いている
ctrl+zが入力されるとwhile文は終了し,最後に科目数と
それらの合計点が出力される
1. 配列
配列とは
同じ型のデータを順番に並べたもの
1次元配列の場合は普通の変数を読み出す方法と同じ
a[0]:aという配列の0番目の要素
int a[5]
int型の配列aは要素を5個持っている
int a[3]={2,4,6}
int型の配列aは2,4,6という3個の要素を持っている
int a[]={2,4,6}
上と同じ意味
要素が多い場合はfor文などを用いて初期値を設定
要素が多い場合
int型の配列aは要素を100個持っている
iはint型の変数
xはint型の変数で,0を代入
配列aのi番目に要素2*iを代入し,出力
(これを0から99まで繰り返す)
ターミナルには0 2 4 6・・・と出力される
(値ごとに改行)
10個の要素を持つ配列Aにファイルから読み込んだ値を入れ,出力させる
fscanf(str1,”%d”,&A[i]);
str1にある値を配列Aに格納している
(はじめはA[0]に,次にA[1]に格納)
printf(“A[%d]=%d\n”,i,A[i]);
A[0]=XX
A[1]=YY...と出力される
練習問題
int型の配列A,Bに以下の5つの要素が与えられている.
これらの要素をそれぞれ足し合わせて配列Cを作成し,その結果を出力せよ.
int A[5]={0,2,4,6,8}
int B[5]={1,3,5,7,9}
配列Cの1つ目の要素は0+1=1
2つ目の要素は2+3=5
→C[0]=1
→C[1]=5…という形で出力
a[0]:aという配列の0番目の要素
int a[5]
int型の配列aは要素を10個持っている
int a[3]={2,4,6}
int型の配列aは2,4,6という3個の要素を持っている
int a[]={2,4,6}
上と同じ意味
解答
要素数が5つでint型の配列Cを定義
要素の数(5つ)だけC=A+Bを繰り返し,
その都度配列Cの値を出力する
課題
要素を10個持ったint型の配列A,Bがある.
これらの要素をそれぞれかけ合わせて配列Cを作成し,その結果を出力せよ.
このとき,配列A,Bの要素はarrayA.txt,arrayB.txtからそれぞれ読み込むこととする.
(これらのテキストファイルとその中の要素は自分で作成すること)
(例)配列Aの一つ目の要素が10,配列Bの1つ目の要素が20の場合
A[0]*B[0]=200