【C言語】配列➁(ソート、多次元配列、文字列)

二値の変換

・二つの変数に格納された値を交換するときのテクニック
・変数 vx と 変数 vy の値の交換
無題

(実行例)無題

配列の内容をソートする

・ソート(sort)
 値を並び替えること
・配列は複数の値を格納できるので、ソートを実行するときに 利用すると便利

配列のソート(1)
・ 配列の先頭要素と配列の2番目以降の要素の大きさを比較する
・ 比較した要素の方が大きければ、先頭要素と入れかえる
・ 上記の処理で、配列の先頭要素に最大値を格納できる無題

配列のソート(2)
・ 次に先頭から2番目の要素と3番目以降の要素を比較する
・ 上記の処理で、先頭から2番目に2番目に大きい要素が入る
・ 順に、3番目以降の要素についても同様に行う
無題

(確認)降順でのソート
無題

(実行例)※入力が22,80,57,60,50の場合無題

(演習)上記のプログラムを昇順に書き換えなさい
https://paiza.io/projects/xBZUBc-ydFdFqgzaBpBJSw

(演習)データの分布を求める

無題

(実行例)※入力が50,49,100,70,99の場合
https://paiza.io/projects/SbhfgibRoWO8MSLjPc0DvA
無題

多次元配列

・構文
型名 配列名[要素数][要素数];
(例)2次元配列
int test[2][5] ;

・初期化
通常の配列の初期化で使った { } の中に もう一度 { } を記述する
(例)
   int test[2][5] = { { 80,60,22,50,75 } , { 90,55,68,72,58 } } ;

文字列と配列

・文字列 ”Hello"
・C言語では「char型の配列」で扱う
(例)
char str[6];
str[0] = 'H’ ;
str[1] = 'e' ;
str[2] = 'l' ;
str[3] = 'l' ;
str[4] = 'o' ;
str[5] = '\0' ;
・各配列要素に1文字入れる
・最後に\0をいれる

初期化方法
char str[6] = { 'H' , 'e' , 'l' , 'l' , 'o' , '\0' } ;
char str[ ] = { 'H' , 'e' , 'l' , 'l' , 'o' , '\0' } ;
char str[6] = "Hello" ;
char str[ ] = "Hello" ;
・” ”で初期化した場合には自動的にNULL文字( '\0' ) が付け加えられる
・注意事項
" " を使って代入することはできない
(例)
× str = "Hello" ; 

文字配列の出力方法
・ 文字列配列は、printf関数で出力することができる
・変換には %s を使う
(例)
printf("%sは文字列です。\n",str);

(確認) 文字列を出力する無題

(実行例)無題

文字列をキーボードから入力する
・ 変換仕様として、 %s を使う
・ ユーザが入力する文字列全体を格納できるように 大きい配列を用意する
・ 使用例
scanf("%s", str);
str[ ] に順番に格納され、最後に自動的に'\0' がつく
※&記号を付けない

(確認) 文字列を入力する無題

(実行例)※入力がaiueoの場合無題

[point] 要素数を大きめに確保しておくとよい

(演習) 文字列を操作する
各文字の後ろに*を付けて出力する無題

(実行例)無題

https://paiza.io/projects/H7AA3XIrQKQrB81CjyE9vg
[point] '\0'でない限り繰り返す

(演習)キーボードから読み込んだ文字列を調べる
キーボードから文字列を入力し、文字列にいくつ「a」という 文字が含まれるかを調べるコードを記述しなさい。無題

(実行例)※入力がalgebraの場合
https://paiza.io/projects/H7AA3XIrQKQrB81CjyE9vg
無題

(演習) キーボードから文字列を入力し、文字列の「a」という文字を 「b」に書き換えるコードを記述しなさい。
無題

(実行例)※入力がalgebraの場合
https://paiza.io/projects/9QADwd8EcjrSN0uTsh0Rmg
無題

(演習) 2行2列の行列x,yの和を求め結果を出力しなさい。無題

無題

(実行例)
https://paiza.io/projects/GZezrg7xk8i-JmwqRLvONg
無題




よろしければサポートお願いします! いただいたサポートはクリエイターとしての活動費に使わせていただいております!