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

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

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

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

17.05.2012, 21:32. Просмотров 297. Ответов 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");  
}
Кусок программы показывающий ошибку.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2012, 21:32     Ошибка в двумерном массиве
Посмотрите здесь:

C++ Указатели в двумерном массиве
Ошибка в двумерном массиве, программа проста: обьявляем и инициализируем двумерный массив и выводим на экран, на экране одни каракули!!! C++
C++ В двумерном массиве подсчитать
C++ Палиндром в двумерном массиве
Указатели в двумерном массиве C++
C++ поиск максимума в двумерном массиве, где ошибка
C++ Функция для удаления элемента в двумерном динамическом массиве. В чем ошибка?
Строки в двумерном массиве C++
Поиск произведения нечетных отрицательных элементов в двумерном массиве. В чем ошибка? C++
C++ Звёздочки в двумерном массиве
C++ Функции в двумерном массиве
Потерялся в двумерном массиве C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nijaz
34 / 34 / 9
Регистрация: 16.12.2010
Сообщений: 100
17.05.2012, 21:45     Ошибка в двумерном массиве #2
C++
1
char a[3][3];
MrGluck
Ворчун
Эксперт CЭксперт С++
6615 / 3806 / 495
Регистрация: 29.11.2010
Сообщений: 10,044
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] не существует, это вне области массива.
Killan
4 / 4 / 0
Регистрация: 28.09.2009
Сообщений: 52
17.05.2012, 21:55  [ТС]     Ошибка в двумерном массиве #4
Эм... не знал о таком, всегда думал что a[2] это 0/1/2 т.е 3 значения.
MrGluck
Ворчун
Эксперт CЭксперт С++
6615 / 3806 / 495
Регистрация: 29.11.2010
Сообщений: 10,044
17.05.2012, 21:59     Ошибка в двумерном массиве #5
Вы используйте элемент a[2][2], это значит что нам нужен двумерный массив размерностью 3*3. При объявлении масива мы пишем в квадратных скобках не нормер крайнего элемента, а количество элементов. В данном случае 3.

Не по теме:

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

Yandex
Объявления
17.05.2012, 21:59     Ошибка в двумерном массиве
Ответ Создать тему
Опции темы

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