В массиве поменять местами столбцы и строки - C#
Формулировка задачи:
Есть массив 5х5, нужно сначала поменять столбцы в нужном порядке (вместо 01234 поменять на 32410) и таким же образом строки (вместо 01234 поменять на 20314).
Скажите, в чем проблема, я сделал, но не всегда выводить правильно..
i0,i1,i2,i3,i4,j0,j1,j2,j3,j4 - номера строк и столбцов.
Массив kript[,] является дубликатом массива mass[,]
for (i = 0; i < 5; i++)
{
kript[i, 0] = mass[i, j0];
kript[i, 1] = mass[i, j1];
kript[i, 2] = mass[i, j2];
kript[i, 3] = mass[i, j3];
kript[i, 4] = mass[i, j4];
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
mass[i, j] = kript[i, j];
}
}
for (j = 0; j < 5; j++)
{
kript[0, j] = mass[i0, j];
kript[1, j] = mass[i1, j];
kript[2, j] = mass[i2, j];
kript[3, j] = mass[i3, j];
kript[4, j] = mass[i4, j];
}Решение задачи: «В массиве поменять местами столбцы и строки»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace BPD_Lab1
{
public partial class frmMain : Form
{
int i1, i2, i3, i4, i0, j1, j2, j3, j4, j0;
String filename;
public frmMain()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int k = 0, i, j;
Char[,] mass = new Char[5, 5];
Char[,] kript = new Char[5, 5];
Char[] s1 = textBox1.Text.ToCharArray();
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
if (k <= s1.Length - 1)
{
mass[i, j] = s1[k];
k++;
}
else mass[i, j] = '_';
}
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
kript[i, j] = mass[i, j];
}
}
for (i = 0; i < 5; i++)
{
kript[i, 0] = mass[i, j0];
kript[i, 1] = mass[i, j1];
kript[i, 2] = mass[i, j2];
kript[i, 3] = mass[i, j3];
kript[i, 4] = mass[i, j4];
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
mass[i, j] = kript[i, j];
}
}
for (j = 0; j < 5; j++)
{
kript[0, j] = mass[i0, j];
kript[1, j] = mass[i1, j];
kript[2, j] = mass[i2, j];
kript[3, j] = mass[i3, j];
kript[4, j] = mass[i4, j];
}
textBox2.Text = "";
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
textBox2.Text += kript[i, j].ToString();
}
}
}
private void button3_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
if (openFileDialog1.FileName != null)
{
filename = openFileDialog1.FileName;
}
textBox1.Text = File.ReadAllText(filename);
}
private void button4_Click(object sender, EventArgs e)
{
i0 = Convert.ToInt32(textBox3.Text);
i1 = Convert.ToInt32(textBox4.Text);
i2 = Convert.ToInt32(textBox5.Text);
i3 = Convert.ToInt32(textBox6.Text);
i4 = Convert.ToInt32(textBox7.Text);
j0 = Convert.ToInt32(textBox12.Text);
j1 = Convert.ToInt32(textBox11.Text);
j2 = Convert.ToInt32(textBox10.Text);
j3 = Convert.ToInt32(textBox9.Text);
j4 = Convert.ToInt32(textBox8.Text);
}
}
}