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

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

Войти
Регистрация
Восстановить пароль
 
incognito
148 / 141 / 1
Регистрация: 08.04.2010
Сообщений: 981
#1

Программа обращения к каждому элементу массива - C++

16.02.2011, 21:15. Просмотров 1093. Ответов 11
Метки нет (Все метки)

Дана матрица символов. Написать программу обращения к каждому элементу этой матрицы, если считать, что имена строк - буквы алфавита (по возрастанию), а имена столбцов - целые числа ( по возрастанию).
С числами более менее понятно, а вот с буквами нет. Я поначалу думал, что нужно будет оперировать кодами букв в таблице ASCII, но преподаватель сказал, что индексы букв можно получать разностью символов. Например, INDEX='B'-'A'. Дальше я не понимаю. Помогите, пожалуйста.

Добавлено через 45 минут
ПРОШУ. ПОМОГИТЕ !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2011, 21:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа обращения к каждому элементу массива (C++):

Ошибка обращения к элементу массива - C++
void sort(int *mas, int len) { int max = mas; int min = mas; for (int i = 1; i<len; ++i) { if (max < mas) max = mas;...

Прибавить к каждому третьему элементу массива число - C++
После заполнения массива прибавить к каждому третьему элементу число, которое находится в левом соседнем элементе

Добавить к каждому отрицательному элементу массива заданное число - C++
Подскажите как это сделать

Как задать каждому элементу массива значение по умолчанию? - C++
Например я знаю что void max(int t=9){//значение по умолчанию переменой t++; } А как такую штуку сделать для каждого елемента...

Задача Таблица. За одно обращение к каждому элементу массива необходимо каждый элемент заменить ближайшим большим следующим за ним - C++
Не могу решить задачу( В массиве А размера n за одно обращение к каждому элементу массива необходимо каждый элемент заменить ближайшим ...

Дать каждому элементу массива "описание" - C++
Как дать каждому элементу массива "описание" ? Например, такой массив: 4 4 hungry // чтоб было так, т.е. рядом с каждым...

11
Merlin666
96 / 96 / 10
Регистрация: 26.12.2010
Сообщений: 220
16.02.2011, 21:16 #2
Уточнит немного бы хотелось..что именно надо сделать?
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
16.02.2011, 21:19 #3
Да, пример входных/выходных данных не помешал, бы.
0
incognito
148 / 141 / 1
Регистрация: 08.04.2010
Сообщений: 981
16.02.2011, 21:22  [ТС] #4
Как сделать, чтобы индексами строк были буквы(англ. заглавные), а столбцов - числа. И чтобы потом элементы матрицы можно было вызывать через букву и целое число?

Добавлено через 2 минуты
Входные - матрица(массив), а выходные - нужный элемент. Думаю так. Мне было дано только задание(((
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
16.02.2011, 21:27 #5
Цитата Сообщение от incognito Посмотреть сообщение
Входные - матрица(массив), а выходные - нужный элемент. Думаю так.
Цитата Сообщение от asics Посмотреть сообщение
Да, пример входных/выходных данных не помешал, бы.
.....
0
Merlin666
96 / 96 / 10
Регистрация: 26.12.2010
Сообщений: 220
16.02.2011, 21:28 #6
Ну вы обращайтесь например так к массиву:
C++
1
2
3
4
5
 int mas[2][2];
 // тут его определяем
 char ch='A';
 // получаем элемент массива [0][0]
 int x = mas[ch-65][0];
1
incognito
148 / 141 / 1
Регистрация: 08.04.2010
Сообщений: 981
16.02.2011, 22:01  [ТС] #7
Цитата Сообщение от asics Посмотреть сообщение
.....
Не обессутьте, но акромя задания нема)))сам в догадках))
Думаю может это будет даже часть программы по вызову. Честно, не знаю.

Добавлено через 28 минут
Дано, например:
A V E T
S H X E
S F R W
G J Q E
...............
0|1 2 3 4
A|A V E T
B|S H X E
C|S F R W
D|G J Q E
Нужно, чтобы, например, по номеру C3 выдало R из этой матрицы.
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.02.2011, 22:09 #8
пффф вам же Merlin666 уже все написал

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main()
{
    char matr[3][3] = { { 'V', 'E', 'T' },
                        { 'H', 'X', 'E' },
                { 'F', 'R', 'W' } };
    std::cout << "Enter elem pos -> ";
    char row;
    size_t col;
    std::cin >> row >> col;
    std::cout << "Element with pos " << row << col 
          << " = " << matr[toupper(row) - 'A'][col-1];
    std::cin.get();
    return 0;
}
1
incognito
148 / 141 / 1
Регистрация: 08.04.2010
Сообщений: 981
17.02.2011, 16:44  [ТС] #9
Но для такого обращения нужно знать коды таблицы. Вот 65 - это же код 'A'. А если, допустим, я не знаю их.
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
17.02.2011, 16:50 #10
Цитата Сообщение от incognito Посмотреть сообщение
А если, допустим, я не знаю их.
Посмторел сюда - узнал, делов то.
0
fasked
Эксперт С++
4948 / 2528 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
17.02.2011, 17:04 #11
incognito, не надо знать коды таблицы, достаточно знать что символы располагаются последовательно a, b, c ... z и A, B, C ... Z. Таким образом 'a' - 'a' = 0, 'b' - 'a' = 1, 'c' - 'a' = 2. Разве надо знать коды, чтобы сделать такой вывод?
1
incognito
148 / 141 / 1
Регистрация: 08.04.2010
Сообщений: 981
19.04.2011, 09:31  [ТС] #12
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
42
#include "stdafx.h"
 
 
 
int main ()
{
    char Arr [22][20]={{'d','g','a','F','f','e'},{'s','f','f','s','G','g','q','x'}};
int Success = 1;
char I,J,size;
int i=22, j=20, base=0;
printf ("Enter I&J \n");
scanf ("%c %c",&I, &J);
 
if ((I-'a'>=0)&& (I-'a'<i))
base=1;
else
if ((I-'A'>=0)&& (I-'A'<i))
base=2;
else
    Success = 0;
 
 
 
if (Success == 1) 
{
    if (!((J-'0'>=0)&&(J-'0'<j)))
        Success = 0;
}
if (base==1)
size=Arr[I-'a'][J-'1'];
else
if (base==2)
size=Arr[I-'A'][J-'1'];
 
 
 
if ((Success == 1)&&(size>='0')){
printf ("%c",size);
}else
    printf ("ERRoR");
 
return(0);}
Не работает. Если, например, задать "а 100", то выдает букву, хотя должен "ERROR".
Ребят, помогите, пожалуйста, найти ошибку.
0
19.04.2011, 09:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2011, 09:31
Привет! Вот еще темы с ответами:

Применить формулу к каждому элементу матрицы - C++
Даны 3 целых числа,получить b матрицу элементы которого равны b=a(i)-3*a(j); #include &lt;iostream&gt; using namespace std; void main() ...

Двумерный массив. Обращение к каждому элементу. - C++
Пожалуйста помогите написать данную программу: Дана матрица символов. Написать программу обращения к каждому элементу этой матрицы, ...

Каждому элементу главной диагонали прибавить сумму предшествующих ему элементов - C++
Дана матрица А(n,n) Если на главной диагонали матрицы есть хотя бы один отрицательный элемент, то к каждому элементу главной диагонали...

Крашится программа при попытке присваивания значения элементу дин-го массива - C++
Не могу понять в чём ошибка. Я только учусь, поэтому возможно, что ошибка элементарная. Вот шаблон класса множество. Хотел написать...


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

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

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