С++ "Ошибка проверки времени выполнения # 2". Пачка вокруг переменной "пара" была повреждена ".

44
3

Привет, я очень новичок в программировании, и я начал возиться с двумерными массивами. Я получаю эту ошибку времени выполнения "Ошибка проверки времени выполнения №2". Пачка вокруг переменной "пара" была повреждена. ". Если бы кто-то мог мне помочь, это было бы большой благодарностью.

#include<stdio.h>
#include<iostream>

int main(void)
{
int pair[2][2];
pair[0][0] = 1;
pair[0][1] = 1;
pair[0][2] = 1;
pair[1][0] = 0;
pair[1][1] = 0;
pair[1][2] = 0;
pair[2][0] = 0;
pair[2][1] = 0;
pair[2][2] = 0;

if((pair[0][0] == 1 && pair[0][1] == 1 && pair[0][2] == 1) || (pair[0][0] == 2 && pair[0][1] == 2 && pair[0][2] == 2))

{
printf("Match!\n");
system("PAUSE");
}
else
{
if((pair[1][0] == 1 && pair[1][1] == 1 && pair[1][2] == 1) || (pair[1][0] == 2 && pair[1][1] == 2 && pair[1][2] == 2))
{
printf("Match!\n");
system("PAUSE");
}

else
{
if((pair[2][0] == 1 && pair[2][1] == 1 && pair[2][2] == 1) || (pair[2][0] == 2 && pair[2][1] == 2 && pair[2][2] == 2))
{
printf("Match!\n");
system("PAUSE");
}
else
{
printf("Nope!\n");
system("PAUSE");
}
}
}

} '

спросил(а) 2014-02-28T16:52:00+04:00 5 лет, 9 месяцев назад
3
Решение
47

вы объявили следующее двумерное множество:

   int pair[2][2];

С моей точки зрения, вы не можете этого сделать:


pair[2][1] = 0;
pair[2][2] = 0;

если вы не объявите более крупный массив: int pair[3][3];

ответил(а) 2014-02-28T16:59:00+04:00 5 лет, 9 месяцев назад
Еще 2 ответа
55

Ваш массив всего 2 на 2.

int pair[2][2]

Таким образом, единственными правовыми индексами являются [0] и [1]. Вы хотите:

int pair[3][3]

Это позволит [0] [1] и [2]

ответил(а) 2014-02-28T16:55:00+04:00 5 лет, 9 месяцев назад
32

Вы определили массив 2d с 2 строками и 2 столбцами, и вы пытаетесь получить доступ к третьему... удалите все приведенные ниже ссылки из вашего кода (в том числе в тех случаях, когда условия)... надеюсь, что это поможет..

pair[1][2] = 0;
pair[2][0] = 0;
pair[2][1] = 0;
pair[2][2] = 0;

ответил(а) 2014-02-28T16:55:00+04:00 5 лет, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема