Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
1

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

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

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


мне вот нужно реализовать массив, как показано на рисунке 10.4
массив вида [<номер строки>][<номер столбца>] = <буква>;
помогите, пожалуйста.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2010, 19:58
Ответы с готовыми решениями:

Двумерный массив. Ввести двумерный массив, найти сумму элементов каждого столбца
Ввести двумерный массив, найти сумму элементов каждого столбца.

Двумерный массив. Заполнить и вывести двумерный массив БЕЗ использования цикла FOR
Заполнить ивывести двумерный массив БЕЗ использования цикла FOR очень срочно!!!

Создать двумерный массив, опираясь на другой двумерный массив
У меня есть такой массив 0 0 0 0 0 0 0 6 3 2 2 8 9 3 7 6 8 3 4 5 1 0 ...

Сделайте, чтобы двумерный вектор обогнал двумерный массив при заполнении случайными числами
Всем привет! Попробовал сравнить время заполнения векторов в векторе и массивов в массиве...

4
Эксперт С++
3940 / 1805 / 184
Регистрация: 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[][] ссылаясь на новые индексы.
1
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]);
}
0
Эксперт С++
3940 / 1805 / 184
Регистрация: 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] = {{'А', 'Б'},{'В', 'Г'}};
0
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
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2010, 10:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Дан двумерный массив A N*N). Сформировать двумерный упорядоченныймассив (А 11<=A 12<= .<=A 23<=.<=A nn)
Дан двумерный массив A(N*N). Сформировать двумерный упорядоченный массив (А11&lt;=A12&lt;=...

Как можно вложить двумерный массив в двумерный?
Нужно написать программу перемножения двух матриц размерностью МxМ, элементы которых, матрицы...

Двумерный массив преобразовать в двумерный List<T>
имеется матрица Single matr; Не важно как и откуда я ее заполняю, но на выходе выходит матрица из...

Двумерный массив.Дан массив 5 х 5. Определить сумму элементов тех строк, где диагональный элемент равен нулю и записать их в отдельный массив.
помогите составить программу. во задание:Дан массив 5 х 5. Определить сумму элементов тех строк,...


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

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

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