我想为sky-l-i-n-e编写一个程序。起初我给了x,然后是高度,然后是宽度。例如(1,2,3)将存储
sky[0,0,0]
和x = 1,身高= 2,宽度= 3。
你的建议是什么?我知道其他人都写过这个,但我想有另一种方式。用户将决定图表的分数。 Actor会给出数字,然后我会按x对数据进行排序,因为x是重要的参数。
排序部分不起作用。有什么问题?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public static int [,]sortedsky=new int[1,1];
public static int row;
public static int x = 0;
public static int [,]sky=new int[1,1];
public static int charrsize(int i, int j)
{
int [,]a=new int [i,j];
sky = a;
sortedsky =sky;
return 1;
}
public static int sort(int [,]a,int i)
{
int y=0;
sky = a;
int min=0;
int tx=0;
int th=0;
int tx2 = 0;
int low=0;
for (int f = 0; f<i; f++)
{
low++;
tx= sky[low,0];
th= sky[low,1];
tx2=sky[low,2];
sky[low,0]=sky[min,0];
sky[low,1]=sky[min,1];
sky[low,2]=sky[min,2];
sky[min,0]=tx;
sky[min,1]=th;
sky[min,2]=tx2;
min = f;
for (y = 0; y < i-1; y++)
if (sky[y+1, 0] < sky[min, 0])
min = y+!;
}
return 1;
}
private void button1_Click(object sender, EventArgs e)
{
row =int.Parse (textBox4 .Text );
charrsize(row, 3);
}
private void textBox3_TextChanged(object sender, EventArgs e)
{ }
public void textBox4_TextChanged(object sender, EventArgs e)
{ }
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = x.ToString ();
if (x<row)
{
//here is my problem:
sky[x, 0] = int.Parse(txtx.Text);
sky[x, 1] = int.Parse(txth.Text);
sky[x, 2] = int.Parse(txtx2.Text);
}
else
{
MessageBox.Show("enough! it was the last");
sort(sky, row);
}
x++;
}
private void Form1_Load(object sender, EventArgs e)
{ }
private void label2_Click(object sender, EventArgs e)
{ }
}
答案 0 :(得分:0)
我终于找到了答案。
for (int i = 0; i < a.GetUpperBound(0); i++)
{
int min = i;
for (int j = i + 1; j <= a.GetUpperBound(0); j++)
{
if (a[min, 0] > a[j, 0])
{
min = j;
}
}
for (int j = 0; j <= a.GetUpperBound(1); j++)
{
int t = a[min, j];
a[min, j] = a[i, j];
a[i, j] = t;
}
sky = a;
int r = 1;
return 0;
}