配列変数同士で格納されている数値データを交換してみよう その2💖💖🌻

ソーラー「さきほどのプログラムでは



配列変数hairetu[0]

0


配列変数hairetu[1]

1


と数値が格納されている状態から


配列変数hairetu[0]

1


配列変数hairetu[1]

0

が格納されている状態に


変更することができました。


その時のプログラムはこちらです。」


👇

#include <stdio.h>


int main(void) {


int hairetu[5];


int i = 0;


for (i = 0; i< 5; i++) {


hairetu[i] = i;


printf("%d", hairetu[i]);

}

/*👆

配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

を初期化すると同時に配列変数に格納された数値

0

1

2

3

4

printf出力表示するようにしています*/


printf("\n");

//🌞改行しています


int a;


a = hairetu[0];


hairetu[0] = hairetu[1];


hairetu[1] = a;


/*


配列変数

hairetu[0]

配列変数

hairetu[1]

に格納されている数値を交換しました*/


for (i = 0; i< 5; i++) {


printf("%d", hairetu[i]);

}


printf("\n");

//🌞改行しています



return 0;

}


ビルド実行結果


01234

10234


アレサ「(´▽`*)成功です


ソーラーさん


配列変数

hairetu[0]

に格納されている数値0

配列変数

hairetu[1]

に格納されている数値1


が交換されているのが


ビルド実行結果を見てもわかります。」


ソーラー「今度は


配列変数

hairetu[0]

に格納されている数値

配列変数

hairetu[1]

に格納されている数値

を交換した後


配列変数

hairetu[1]

に格納されている数値

配列変数

hairetu[2]

に格納されている数値

を交換し


さらにその後


配列変数

hairetu[2]

に格納されている数値

配列変数

hairetu[3]

に格納されている数値

を交換し


さらにその後


配列変数

hairetu[3]

に格納されている数値

配列変数

hairetu[4]

に格納されている数値を


交換してみよう


というわけなんだよ」


アレサ「マニアックすぎます・・・


配列変数

hairetu[0]

に格納されている数値

配列変数

hairetu[1]

に格納されている数値

を交換すると


10234


がビルド実行結果に表示されました。


01234から


10234に

変化しています



配列変数

hairetu[1]

に格納されている数値は0となっていますね



この10234と表示される状態から


配列変数

hairetu[1]

に格納されている数値

配列変数

hairetu[2]

に格納されている数値

を交換すると


ビルド実行結果に


12034


が表示されるはずですの


配列変数

hairetu[2]

に格納されている数値は0となっていますね。


さらに


この状態から


配列変数

hairetu[2]

に格納されている数値

配列変数

hairetu[3]

に格納されている数値

を交換すると


ビルド実行結果に


12304


が表示されるはずですの


このとき


配列変数

hairetu[3]

に格納されている数値は0となっています


さらに


この状態から


配列変数

hairetu[3]

に格納されている数値

配列変数

hairetu[4]

に格納されている数値

を交換すると


ビルド実行結果に


12340


が表示されるはずですの


このとき


配列変数

hairetu[4]

に格納されている数値は0となっています


お隣同士の配列変数に格納されている数値を


交換するたびに


01234

10234

12034

12304

12340



ビルド実行結果が


変化していくとおもわれます。


よく見ると


0が右へ1つずつ移動しています。」


ソーラー「それでは


実際に


そのプログラムを実行していきたいとおもいます。


#include <stdio.h>


int main(void) {


int hairetu[5];


int i = 0;


for (i = 0; i< 5; i++) {


hairetu[i] = i;


printf("%d", hairetu[i]);

}

/*👆

配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

を初期化すると同時に配列変数に格納された数値

0

1

2

3

4

printf出力表示するようにしています*/


printf("\n");

//🌞改行しています


int a;


a = hairetu[0];


hairetu[0] = hairetu[1];


hairetu[1] = a;


/*


配列変数

hairetu[0]

配列変数

hairetu[1]

に格納されている数値を交換しました*/


for (i = 0; i< 5; i++) {


printf("%d", hairetu[i]);

}


printf("\n");


a = hairetu[1];


hairetu[1] = hairetu[2];


hairetu[2] = a;


/*


配列変数

hairetu[1]

配列変数

hairetu[2]

に格納されている数値を交換しました*/


for (i = 0; i< 5; i++) {


printf("%d", hairetu[i]);

}


printf("\n");



a = hairetu[2];


hairetu[2] = hairetu[3];


hairetu[3] = a;


/*


配列変数

hairetu[2]

配列変数

hairetu[3]

に格納されている数値を交換しました*/


for (i = 0; i< 5; i++) {


printf("%d", hairetu[i]);

}


printf("\n");



a = hairetu[3];


hairetu[3] = hairetu[4];


hairetu[4] = a;


/*


配列変数

hairetu[3]

配列変数

hairetu[4]

に格納されている数値を交換しました*/


for (i = 0; i< 5; i++) {


printf("%d", hairetu[i]);

}


printf("\n");

//🌞改行しています



return 0;

}


ビルド実行結果


01234

10234

12034

12304

12340


ソーラー「ビルド実行に成功!


さらに


このプログラムの


int a;


a = hairetu[0];


hairetu[0] = hairetu[1];


hairetu[1] = a;


/*


配列変数

hairetu[0]

配列変数

hairetu[1]

に格納されている数値を交換しました*/


for (i = 0; i< 5; i++) {


printf("%d", hairetu[i]);

}


printf("\n");


a = hairetu[1];


hairetu[1] = hairetu[2];


hairetu[2] = a;


/*


配列変数

hairetu[1]

配列変数

hairetu[2]

に格納されている数値を交換しました*/


for (i = 0; i< 5; i++) {


printf("%d", hairetu[i]);

}


printf("\n");



a = hairetu[2];


hairetu[2] = hairetu[3];


hairetu[3] = a;


/*


配列変数

hairetu[2]

配列変数

hairetu[3]

に格納されている数値を交換しました*/


for (i = 0; i< 5; i++) {


printf("%d", hairetu[i]);

}


printf("\n");



a = hairetu[3];


hairetu[3] = hairetu[4];


hairetu[4] = a;


/*


配列変数

hairetu[3]

配列変数

hairetu[4]

に格納されている数値を交換しました*/


for (i = 0; i< 5; i++) {


printf("%d", hairetu[i]);

}


printf("\n");


の部分を


配列とfor文を用いて短くまとめるとプログラムは


次のようになるね。


#include <stdio.h>


int main(void) {


int hairetu[5];


int i = 0;


for (i = 0; i< 5; i++) {


hairetu[i] = i;


printf("%d", hairetu[i]);

}

/*👆

配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

を初期化すると同時に配列変数に格納された数値

0

1

2

3

4

printf出力表示するようにしています*/


printf("\n");

//🌞改行しています


int a;


int k;


for (k = 0; k< 4; k++) {


a = hairetu[k];


hairetu[k] = hairetu[k + 1];


hairetu[k + 1] = a;



for (i = 0; i< 5; i++) {


printf("%d", hairetu[i]);

}


printf("\n");


}


return 0;

}



ビルド実行結果


01234

10234

12034

12304

12340


ソーラー「最終的に


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


に格納されている数値は


0

1

2

3

4

から

1

2

3

4

0

に変化したわけだね。」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます