C# dizin hesaplatma

0
Onaylı Üye
Üye
Katılım
3 Aralık 2013
Mesajlar
34
Tepki puanı
0
arkadaşlar bir sorum var şu şekil :

5*5 boyutlu bir dizinin içeriğine rastgele sayılar atanacaktır.
Oluşturulan 2 boyutlu dizinin soldan sağa ve sağdan sola olan köşegenlerini toplayan program.

soldan sağa sorun toplatabiliyorum.indeks numaraları eşit olunca. ama sağdan
sola olduğunda nasıl bir işlem yapmam gerekiyor. farklı olan indeksleri nasıl çapraz toplatabilirm .:/

private void button1_Click(object sender, EventArgs e)
{
int[,] dizi = new int[5, 5];
for (int satir = 0; satir < 5; satir++)
{

for (int sutun = 0; sutun < 5; sutun++)
{
dizi[satir, sutun] = rnd.Next(1, 10);
listBox1.Items.Add("["+sutun+"]"+"["+ satir+"]");
listBox2.Items.Add(dizi[satir, sutun]);
if(satir==sutun)
{
toplam = toplam + dizi[satir, sutun];

}

toplam2 = (dizi[4, 0] + dizi[3, 1] + dizi[1, 3] + dizi[0, 4]-dizi[2,2]);
textBox1.Text = toplam2.ToString();
textBox1.Text = (toplam + toplam2).ToString();

}

}

}
 
0
Onaylı Üye
Üye
Katılım
3 Aralık 2013
Mesajlar
34
Tepki puanı
0
ilkinde dizi[2,2] içinde olan değeri hesapladık . ikincisinde değerii tekrar toplamaması için - yaptım .
 
0
Onaylı Üye
Üye
Katılım
6 Nisan 2010
Mesajlar
2,892
Tepki puanı
36
Toplamaması için - yapılmaz ki, dizi[2,2] yi hiç hesaba katmazsın o zaman? - yaparak hem hesaba katmamış oluyorsun, üstüne bir de o değeri çıkarıyorsun. Yani sonucun hep eksik çıkar bu duruma göre. Ya da ben mi yanlış anladım mevzuyu?
 
0
Onaylı Üye
Üye
Katılım
3 Aralık 2013
Mesajlar
34
Tepki puanı
0
peki o zaman hesaba katmadan . sadece sağdan sola olan hesaplama için nasıl bir if yapısı kullanabilirim.
 
0
Onaylı Üye
Üye
Katılım
6 Nisan 2010
Mesajlar
2,892
Tepki puanı
36
Böyle tek tek yazmak yerine pratik bir yol mu arıyorsunuz? (dizi[4, 0] + dizi[3, 1] + dizi[1, 3] + dizi[0, 4])

Eğer öyleyse benim de aklıma gelen birşey yok
 
0
Onaylı Üye
Üye
Katılım
3 Aralık 2013
Mesajlar
34
Tepki puanı
0
problemi çözdüm sonunda

namespace dizi
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int toplam = 0;
int toplam2 = 0;

Random rnd = new Random();
private void button1_Click(object sender, EventArgs e)
{
int[,] dizi = new int[5, 5];
for (int satir = 0; satir < 5; satir++)
{

for (int sutun = 0; sutun < 5; sutun++)
{
dizi[satir, sutun] = rnd.Next(1, 5);
listBox1.Items.Add("["+sutun+"]" + "["+satir+"]");
listBox2.Items.Add(dizi[satir, sutun]);


if(satir==sutun || satir+sutun==4) // satir sutun toplamı da 4 olduğunda topla dedim . ilk baştada 2,2 toplamaya kattın ikincisinde katmadı .//
{
listBox3.Items.Add(dizi[satir, sutun]);

toplam = toplam + dizi[satir, sutun];
}
textBox1.Text = toplam.ToString();
}

}

}
}
}
 
Geri
Üst