PDA

View Full Version : سوال: مشکل در اجرای یک آرایه 2 بعدی



hossein86166
یک شنبه 08 آبان 1390, 15:58 عصر
در کد زیر به انتساب عدد به خانه های آرایه در حلقه گیر می ده اما بیرون از حلقه نه؟؟
int[,] shabihTable = new int[50, 12];
shabihTable[1, 1] = 1;
shabihTable[temp, temp] = 0;
shabihTable[1, 2] = r.Next(0, 1000);
shabihTable[1, 3] = searchClient(shabihTable[1, 2]);
shabihTable[1, 4] = shabihTable[1, 3];
shabihTable[1, 5] = 0;
shabihTable[1, 6] = shabihTable[1, 4];
shabihTable[1, 7] = r.Next(0, 100);
shabihTable[1, 8] = searchservic(shabihTable[1, 7]);
shabihTable[1, 9] = shabihTable[1, 8];
shabihTable[1, 10] = shabihTable[1, 9];
shabihTable[1, 11] = 0;

تا اینجا مشکلی نیست اما
for (int n = 2; n <= 51; n++)
{
shabihTable[n,1] = 2;
shabihTable[n,2] = r.Next(0, 1000);
shabihTable[n,3] = searchClient(shabihTable[n, 2]);
shabihTable[n, 4] = shabihTable[n, 3] + shabihTable[n - 1, 4];

shabihTable[n, 5] = shabihTable[n- 1, 9] - shabihTable[n, 3];
if (shabihTable[n, 5] < 0)
shabihTable[n, 5] = 0;

shabihTable[n, 6] = shabihTable[n, 4] + shabihTable[n, 5];
shabihTable[n, 7] = r.Next(0, 100);
shabihTable[n, 8] = searchservic(shabihTable[n, 7]);
shabihTable[n, 9] = shabihTable[n, 6] + shabihTable[n, 8];
shabihTable[n, 10] = shabihTable[n, 9] - shabihTable[n, 6];
if (shabihTable[n, 10] < 0)
shabihTable[n, 10] = 0;
shabihTable[n, 11] = shabihTable[n, 6] - shabihTable[n - 1, 9];
if (shabihTable[n, 11] < 0)
shabihTable[n, 11] = 0;

Amir Oveisi
یک شنبه 08 آبان 1390, 16:51 عصر
وقتی n=51‌ شد میخواد که به سطر ۵۲ ام از آرایه دسترسی داشته باشه در حالی که آرایه شما ۵۰ سطر داره و بزرگترین ایندکسی که مجاز به دسترسی به اون هستید n = 49 هست.

توصیه جدی:‌در مورد آرایه ها مطالعه کنید حتما.
http://msdn.microsoft.com/en-us/library/aa288453%28VS.71%29.aspx