Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Killan
5 / 5 / 0
Регистрация: 28.09.2009
Сообщений: 52
#1

Ошибка в двумерном массиве - C++

17.05.2012, 21:32. Просмотров 310. Ответов 4
Метки нет (Все метки)

Делаю игру крестики нолики с использование двумерного массива, и возникла проблема.
Программа считает a[0][2] и a[1][0] одним значением, и не только их. Ломаю голову, мб я чего-то не знаю о массивах ?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include"stdio.h"
#include"windows.h"
int main()
{
    char a[2][2];
    int q;
    int o=1;
    int b,d;
    for(b=0;b<3;b++)
{
                 for(d=0;d<3;d++)
                 {
                                  a[b][d]='#';
                 }
}        
      
      scanf("%d",&q);
      if(q==1)
      {
                    if(o%2)
                    {
                           a[0][2]='X';
 
                    }
      o++;
      };          
                  
      printf("%c",a[0][0]);
      printf("%c",a[0][1]);
      printf("%c",a[0][2]);
      printf("\n");
      printf("%c",a[1][0]);
      printf("%c",a[1][1]);
      printf("%c",a[1][2]);
      printf("\n");
      printf("%c",a[2][0]);
      printf("%c",a[2][1]);
      printf("%c",a[2][2]);
      printf("\n");
      system("pause");  
}
Кусок программы показывающий ошибку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2012, 21:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в двумерном массиве (C++):

поиск максимума в двумерном массиве, где ошибка - C++
// lab2_1.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; ...

Поиск произведения нечетных отрицательных элементов в двумерном массиве. В чем ошибка? - C++
Мне нужно сделать программу поиск произведения нечетных отрицательных элементов в двумерном массиве using namespace std;// Здесь...

Функция для удаления элемента в двумерном динамическом массиве. В чем ошибка? - C++
функция для удаления элемента в двум дин массиве (пока только часть в которой указывается какой надо удалить элемент). пишет IntelliSense:...

Ошибка в двумерном массиве, программа проста: обьявляем и инициализируем двумерный массив и выводим на экран, на экране одни каракули!!! - C++
В чем проблема, компилятор ошибок не выдает, и сделал вроде все правильно!!!!?? #include &lt;iostream&gt; #include&lt;iomanip&gt; using...

Функции в двумерном массиве - C++
Ввести двумерные массивы X1,X2. В этих массивах найти минимальные элементы. Преобразовать каждую матрицу, увеличив её отрицательные...

Динамика в двумерном массиве - C++
Всем привет. Подскажите, пожалуйста, реально ли реализовать такое. Есть заранее найденное n - не константа. Нужно, чтобы массив...

4
Nijaz
34 / 34 / 9
Регистрация: 16.12.2010
Сообщений: 100
17.05.2012, 21:45 #2
C++
1
char a[3][3];
1
MrGluck
Модератор
Эксперт CЭксперт С++
7423 / 4538 / 673
Регистрация: 29.11.2010
Сообщений: 12,319
17.05.2012, 21:53 #3
Объявляя arr[N], вы фактически объявляете элементы arr[0], arr[1], ... arr[N-1]. Всего выходит N элементов. Почему? Всё просто - индексация массива начинается с 0. Т.е. если я объявлю массив arr[3], то существуют элементы arr[0], arr[1], arr[2]. Элемента arr[3] не существует, это вне области массива.
1
Killan
5 / 5 / 0
Регистрация: 28.09.2009
Сообщений: 52
17.05.2012, 21:55  [ТС] #4
Эм... не знал о таком, всегда думал что a[2] это 0/1/2 т.е 3 значения.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7423 / 4538 / 673
Регистрация: 29.11.2010
Сообщений: 12,319
17.05.2012, 21:59 #5
Вы используйте элемент a[2][2], это значит что нам нужен двумерный массив размерностью 3*3. При объявлении масива мы пишем в квадратных скобках не нормер крайнего элемента, а количество элементов. В данном случае 3.

Не по теме:

Код
void read_again()
{
    if (understand) return;
    else read_again();
}

1
17.05.2012, 21:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2012, 21:59
Привет! Вот еще темы с ответами:

Указатели в двумерном массиве - C++
Помогите пожайлуста!!! Как занулить главную диогональ, скока не пробовал, ни как не получается.... не могу найти ошибку :wall: Вот...

В двумерном массиве подсчитать - C++
Для каждой строки в двумерном массиве подсчитать количество положительных элементов и записать данные в новый массив. Помогите плз, а то в...

Звёздочки в двумерном массиве - C++
Дано нечетное число n, не превосходящее 15. Создайте двумерный массив из n×n элементов, заполнив его символами &quot;.&quot; (каждый элемент массива...

Палиндром в двумерном массиве - C++
Задача звучит так :С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица. Найти строку, порядок элементов которой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru