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

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

Войти
Регистрация
Восстановить пароль
 
Aniritake
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
#1

Двумерный массив С++ - C++

14.04.2010, 19:58. Просмотров 889. Ответов 4
Метки нет (Все метки)

изначально:
Двумерный массив С++

мне вот нужно реализовать массив, как показано на рисунке 10.4
массив вида [<номер строки>][<номер столбца>] = <буква>;
помогите, пожалуйста.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2010, 19:58     Двумерный массив С++
Посмотрите здесь:

с++ двумерный массив - C++
уважаемые программисты прошу помочь с программой на двумерный массив т.к. я не в силах это сделать!!! нужно создать функцию к этой...

Двумерный массив - C++
Нужно написать программу, которая транспонирует матрицу, предварительно введённую с клавиатуры пользователем.

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

Двумерный массив - C++
Дан двумерный массив, размерностью N*N. Упорядочить строки целочисленной матрицы по возрастанию. Помогите пожалуйста) Только попроще...

Двумерный массив - C++
Составить программу, в которой сформировать динамический двумерный массив В, состоящий из k строк и p столбцов, в отдельной функции...

двумерный массив.С++ - C++
1)дана квадратная матрица И х И.Переставляя её строки и столбцы,добиться того,чтобы найбольший элемент(или один из них)оказался на...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MikeSoft
Эксперт С++
3792 / 1774 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
15.04.2010, 01:29     Двумерный массив С++ #2
Aniritake, а что не получается?
По условию просят использовать ASCII код символа...
Если это unsigned char, то максимальный размер массива
C++
1
int a[256][256]; // массив для ASCII от 0 до 255
Идём дальше... как писать по адресу ASCII символа...
Для начала его нужно получить:
C++
1
2
3
4
char x1[] = "c";
int pos = (unsigned int)(unsigned char)(x1[0]);
// теперь можно ссылаться на нужную ячейку, как просят на рис. 10.4
a[0][pos] = 1;
Трудность была в этом?
Думаю, да.
Если в условии алфавит ограничен - то нужно отсортировать полученные коды по возрастанию и писать их в массив a[][] ссылаясь на новые индексы.
Aniritake
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
15.04.2010, 08:11  [ТС]     Двумерный массив С++ #3
Цитата Сообщение от MiCr0s0fT Посмотреть сообщение
а что не получается?
в целом получается, что я пытаюсь загнать алфавит в двумерный массив

C++
1
char x1[] = "c"
"c" я правильно понимаю, что это уже символ алфавита?

Добавлено через 12 минут
а вот так вот получится?
C++
1
2
3
4
5
6
7
8
9
10
11
int myArr [6][5]= 
{    А,Б,В,Г,Д,Е,
     Ж,З,И,К,Л,М,
     Н,О,П,Р,С,Т,
     У,Ф,Х,Ц,Ч,Ш,
     Щ,Ь,Ы,Э,Ю,Я };  
for(int i=0;i<n;i++)
{  
for (int j=0;j<n;j++)  
printf("%2d",myArr[i][j]);
}
MikeSoft
Эксперт С++
3792 / 1774 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
15.04.2010, 17:01     Двумерный массив С++ #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Aniritake Посмотреть сообщение
"c" я правильно понимаю, что это уже символ алфавита?
Да, так и есть.

Цитата Сообщение от Aniritake Посмотреть сообщение
а вот так вот получится?
C++
1
2
3
4
5
6
7
8
9
10
11
int myArr [6][5]= 
{    А,Б,В,Г,Д,Е,
     Ж,З,И,К,Л,М,
     Н,О,П,Р,С,Т,
     У,Ф,Х,Ц,Ч,Ш,
     Щ,Ь,Ы,Э,Ю,Я };  
for(int i=0;i<n;i++)
{  
for (int j=0;j<n;j++)  
printf("%2d",myArr[i][j]);
}
Нет, так делать нельзя, т.к. Вы пытаетесь присвоить значение типа char массиву значений типа int.

Нужно либо делать неявные преобразования, либо поступить вот так:

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
//---------------------------------------------------------------------------
#include <iostream.h>
//---------------------------------------------------------------------------
int main()
{
    const int x = 6, y = 6;
    char a[x][y];
 
    int pos = 128;
    for (int i = 0; i < x; i++) {
        for (int j = 0; j < y; j++) {
            a[i][j] = char(pos);
            cout << a[i][j] << " ";
            if (j == y-1) {
                cout << endl;
            }
            pos++;
        }
    }
    cin.get();
 
    return 0;
}
//---------------------------------------------------------------------------
Если нужно всё же забивать руками, тогда можно присваивать так:
C++
1
char a[2][2] = {{'А', 'Б'},{'В', 'Г'}};
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2010, 10:02     Двумерный массив С++
Еще ссылки по теме:

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

Двумерный массив - C++
#include &lt;iostream&gt; using namespace std; int main() { const int n=3; int a; for(int i=0;i&lt;=N;i++) for(int...

Двумерный массив - C++
Циклический вычислительный процесс (двумерный массив)  Для произвольного двумерного массива найти столбец с наибольшей суммой элементов...

Двумерный массив - C++
1)Заполнить матрицу и вывести результат на экран 2)Заполнить матрицу и сохранить в 2 файла( текстовый file.txt и бинарный file.bin) ...

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

Двумерный массив - C++
Есть задачка: Вот моё решение: #include &lt;iostream&gt; using namespace std; int main()


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

Или воспользуйтесь поиском по форуму:
Aniritake
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
16.04.2010, 10:02  [ТС]     Двумерный массив С++ #5
,
C++
1
int a[256][256]; // массив для ASCII от 0 до 255
Идём дальше... как писать по адресу ASCII символа...
Для начала его нужно получить:
C++
1
2
3
4
char x1[] = "c";
int pos = (unsigned int)(unsigned char)(x1[0]);
// теперь можно ссылаться на нужную ячейку, как просят на рис. 10.4
a[0][pos] = 1;
если я буду делать таким способом, то мне для каждого символа алфавита нужно будет это прописать.
для а:
C++
1
2
3
4
5
char x1[] = "а";
int pos = (unsigned int)(unsigned char)(x1[0]);
// теперь можно ссылаться на нужную ячейку, как просят на рис. 10.4
a[0][pos] = 1;
a[1][pos] = 1;
для б:
C++
1
2
3
4
5
char x2[] = "б";
int pos = (unsigned int)(unsigned char)(x2[0]);
// теперь можно ссылаться на нужную ячейку, как просят на рис. 10.4
a[0][pos] = 1;
a[1][pos] = 2;
для в:
C++
1
2
3
4
5
char x3[] = "в";
int pos = (unsigned int)(unsigned char)(x3[0]);
// теперь можно ссылаться на нужную ячейку, как просят на рис. 10.4
a[0][pos] = 2;
a[1][pos] = 1;
для с:
C++
1
2
3
4
5
char x4[] = "г";
int pos = (unsigned int)(unsigned char)(x4[0]);
// теперь можно ссылаться на нужную ячейку, как просят на рис. 10.4
a[0][pos] = 2;
a[1][pos] = 2;
ну это по примеру образования массива н рисунке 10.4
Yandex
Объявления
16.04.2010, 10:02     Двумерный массив С++
Ответ Создать тему
Опции темы

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