第7講 多次元配列と1次元配列の関係
第5話 左右反転行列の表示までを1次元For文で行う!
の左右反転行列の表示までを1次元For文で実点するコード例
//以下C#を始めるためのお呪い
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//以上C#を始めるためのお呪い
namespace a //初心者はお呪い=決まり事と思い一切気にしない
{
class Program //初心者はお呪い=決まり事と思い一切気にしない
{
static void Main(string[] args) //私は社長だ。
{
f();
}
static void f()
{
int[] a = new int[12];
Random r = new Random();
//以下データ生成
for (int i = 0; i < 12; i++)
{
a[i] = r.Next(100);
}
//以下行列データ表示
for (int i = 0; i < 12; i++)
{
if (i > 0 && i % 4 == 0) Console.WriteLine(); //改行
if (a[i] < 10) Console.Write(" {0:d} ", a[i]); //1桁の場合
if (a[i] >= 10) Console.Write("{0:d} ", a[i]); //2桁の場合
}
Console.WriteLine(); //改行
Console.WriteLine(); //改行
//以下左右反転行列データ表示
for (int i = 0; i < 12; i++)
{
if (i > 0 && i % 4 == 0) Console.WriteLine(); //改行
if (a[4 * (i / 4)+(3 - (i % 4))] < 10) Console.Write("
{0:d} ", a[4 * (i / 4)+(3 - (i % 4))]); //1桁の場合
if (a[4 * (i / 4)+(3 - (i % 4))] >= 10) Console.Write("{0:d} ", a[4 * (i / 4)+(3 - (i % 4))]); //2桁の場合
}
Console.WriteLine(); //改行
Console.WriteLine(); //改行
//以下上下反転行列データ表示
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
if (a[4 * (2 - i) + j] < 10) Console.Write(" {0:d} ", a[4 * (2 - i) + j]); //1桁の場合
if (a[4 * (2 - i) + j] >= 10) Console.Write("{0:d} ", a[4 * (2 - i) + j]); //2桁の場合
}
Console.WriteLine(); //改行
}
Console.WriteLine(); //改行
//以下転置行列データ表示
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 3; j++)
{
if (a[4 * j + i] < 10) Console.Write(" {0:d} ", a[4 * j + i]); //1桁の場合
if (a[4 * j + i] >= 10) Console.Write("{0:d} ", a[4 * j + i]); //2桁の場合
}
Console.WriteLine();
}
}
}
}
解説
4 * (i / 4) が
0,1,2,3
4,5,6,7
8,9,10,11
から
0,0,0,0
4,4,4,4
8,8,8,8
への変換を担当しています。
そして、(3 - (i % 4))が
0,1,2,3
4,5,6,7
8,9,10,11
から
3,2,1,0
3,2,1,0
3,2,1,0
への変換を担当しています。
そして、変換した両者を合体すれば、
3,2,1,0
7,6,5,4
11,10,9,8
が実現します。
頭の体操になったでしょう。
では、上下反転行列も1次元for文で実現してみましょう。
第4話へ 第6話へ
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ