Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
SamBars
15 / 15 / 12
Регистрация: 06.10.2015
Сообщений: 94
#1

Можно ли в С++ создать матрицу, строки которой имеют разный тип (например, 1-я строка - bool, 2-я - char)? - C++

13.09.2016, 22:44. Просмотров 429. Ответов 12
Метки нет (Все метки)

Привет всем. У меня такой вот "тупой" вопрос. Можно ли в С++ создать матрицу например 2 на 8 где первая строка имеет тип bool а вторая тип char?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2016, 22:44
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Можно ли в С++ создать матрицу, строки которой имеют разный тип (например, 1-я строка - bool, 2-я - char)? (C++):

Если в матрице есть одна строка, сумма элементов которой отрицательна, создать новую матрицу по правилу
Люди, кто-нибудь знает как задачку решить? Хотя бы на мысль подтолкните...

Создать матрицу элементы которой являются строки
В предыдущем задании надо было создать матрицу N на M элементы которой целые...

Можно ли каким-то образом наследовать тип bool
Здраствуйте, можно ли каким то образом наследовать тип bool типо что бы 1 -...

Сформировать матрицу, у которой элементы j-го столбца имеют значение 5j
Сформировать целочисленную матрицу размера N × M, у которой все элементы j-го...

Можно ли сделать бесконечный цикл с while, используя тип bool?
... bool f; f=false; while(f=false) { ... ... ... if(....)//какое-то...

Создать матрицу B, каждый элемент которой равен произведению соответствующего элемента А на номер его строки
Добрый день уважаемые форумчане! Помогите пожалуйста с решением задачи в...

12
Datebailo
0 / 4 / 6
Регистрация: 13.05.2016
Сообщений: 58
13.09.2016, 23:08 #2
Теоритически - можно. Практически - надо думать.
Создаете два массива - один, типа bool, второй типа char, соединяете в один, и будет вам радость
0
zss
Модератор
Эксперт С++
6953 / 6515 / 4136
Регистрация: 18.12.2011
Сообщений: 17,201
Завершенные тесты: 1
14.09.2016, 08:47 #3
Лучший ответ Сообщение было отмечено SamBars как решение

Решение

Объединить данные можно используя структуру
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct TwoType
{
    bool b[8];
   char c[8];
};
int main()
{
    TwoType tt;
    for(int i=0;i<8;i++)
   {
        tt.b[i]=true;
        tt.c[i]='a'+i;
   }
}
2
DemolitionMan
129 / 155 / 87
Регистрация: 06.04.2016
Сообщений: 992
14.09.2016, 08:52 #4
Сергей Сергеевич, открывающую скобку забыли в 9 строке(почти как компилятор сказал). Это я сказал, чтобы ТС не мучался годами, отыскивая ту самую скобку.
0
Nishen
14.09.2016, 08:54
  #5

Не по теме:

Цитата Сообщение от DemolitionMan Посмотреть сообщение
почти как компилятор сказал
Его компилятор обращается к нему по имени отчеству?

0
Kastaneda
Jesus loves me
Эксперт С++
4760 / 2963 / 341
Регистрация: 12.12.2009
Сообщений: 7,524
Записей в блоге: 2
Завершенные тесты: 1
14.09.2016, 09:06 #6
В С++ можно все, только зачем такие извращения?
0
qppq
12 / 12 / 5
Регистрация: 31.08.2016
Сообщений: 181
Завершенные тесты: 1
14.09.2016, 09:07 #7
Цитата Сообщение от zss Посмотреть сообщение
tt.c[i]='a'+i;
а можно вот так?
C++
1
tt.c[i]=i++;
0
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
14.09.2016, 09:17 #8
Цитата Сообщение от Nishen Посмотреть сообщение
Его компилятор обращается к нему по имени отчеству?
Как-то очень живо представил себе это:
"Сергей Сергеич, голубчик, не соблаговолите ли поставить открывающую скобку в 9-й строке?"
2
zss
Модератор
Эксперт С++
6953 / 6515 / 4136
Регистрация: 18.12.2011
Сообщений: 17,201
Завершенные тесты: 1
14.09.2016, 11:54 #9
Цитата Сообщение от qppq Посмотреть сообщение
а можно вот так?
А что этому может помешать?
0
DemolitionMan
129 / 155 / 87
Регистрация: 06.04.2016
Сообщений: 992
14.09.2016, 12:18 #10
Цитата Сообщение от gru74ik Посмотреть сообщение
Как-то очень живо представил себе это:
"Сергей Сергеич, голубчик, не соблаговолите ли поставить открывающую скобку в 9-й строке?"
- ну уж гомосятину не надо тут писать, я по-мужиковски, по-нормальному сказал, а то тут уже точку с запятой в коде MSVS2015 не могут найти. Вы палку перегибаете, палку не надо перегибать.
По теме: вот в этой строке:
C++
1
tt.c[i]='a'+i;
возможно придется добавить конкатенацию строк и перевод из целых в строковые переменные, т.е. возможно будет выглядеть так:
C++
1
tt.c[i]=strcat('a',itoa(i));
0
gru74ik
14.09.2016, 12:34
  #11

Не по теме:


Цитата Сообщение от DemolitionMan Посмотреть сообщение
- ну уж гомосятину не надо тут писать
DemolitionMan, это отсылка к классику русской литературы Михаилу Афанасьевичу Булгакову и его повести "Собачье сердце". А если быть точным, то к диалогу за столом между профессором Преображенским и доктором Борменталем. Этот приём называется "стилизация". Обращение "голубчик" было весьма распространено во второй половине XIX - первой половине ХХ веков и никакого отношения к, как Вы изволили выразиться, "гомосятине", не имеет.

DemolitionMan, Вы, голубчик, самообразованием занимайтесь, и за словами своими следите. А то, право, стыд какой-то, Булгакова не знать, и свои анальные фобии на других людей экстраполировать.

0
_Ivana
3232 / 1860 / 235
Регистрация: 01.03.2013
Сообщений: 5,091
Записей в блоге: 5
15.09.2016, 02:53 #12
А кстати, IDE вполне может быть вежлива с пользователем при сообщениях об ошибках - у нее для этого все есть
2
Миниатюры
Можно ли в С++ создать матрицу, строки которой имеют разный тип (например, 1-я строка - bool, 2-я - char)?  
obivan
Падаван С++
419 / 239 / 82
Регистрация: 11.11.2014
Сообщений: 842
Завершенные тесты: 2
15.09.2016, 10:07 #13
Цитата Сообщение от DemolitionMan Посмотреть сообщение
По теме: вот в этой строке:

C++
1
tt.c[i]='a'+i;
возможно придется добавить конкатенацию строк и перевод из целых в строковые переменные, т.е. возможно будет выглядеть так:

C++
1
tt.c[i]=strcat('a',itoa(i));

zss, имел ввиду тут смешение в ascii кодах при заполнении массива и результат будет abcdefhi и это будет строка, а в вашем случае программа хорошо если просто упадет, потому что вы в пытаетесь впихнуть в переменную чар строку, ошибка в другом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct TwoType
{
    bool b[8];
   char c[9];
};
int main()
{
    TwoType tt;
    for(int i=0;i<8;i++)
   {
        tt.b[i]=true;
        tt.c[i]='a'+i;
   }
    tt.c[8] = '\0';
}
Добавлено через 27 минут
Цитата Сообщение от qppq Посмотреть сообщение
а можно вот так?
можно но это не обычный инкремент, цель такого кода от zss была просто последовательно заполнить какими либо символами массив чар, и добавляя к переменной i, 'a' мы получаем что-то наподобие такого i + 97(это код символа а) и так как все последующие символы в алфавите расположены друг за другом то 97 + 1 = 98(это код символа b) и в индекс tt.c[1] занесется значение b, а если сделать как вы говорите то там будут какие-то зарезервированные символы в ascii кодах, но код zss нагляднее.

Добавлено через 2 минуты
P.S qppq, и да только сейчас понял вы же переменную цикла еще предложили инкрементировать, не стоит так делать, потому что в вашем случаем помимо всего заполнилось бы не 8 элементов, а 4
1
15.09.2016, 10:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2016, 10:07
Привет! Вот еще темы с решениями:

Строка: чем отличается строки string, char, char*?
Помогите разобраться,совсем плохо идёт,чем отличается строки string,char,char*...

как правильно понять тип bool ? bool true(const string &str) и что дает это значение ?
задам может глупый вопрос, но прошу ответить. как правильно понять тип bool...

Сформировать целочисленную матрицу, у которой все элементы 1-й строки имеют значение 10*i
Даны целые положительные числа M и N. Сформировать целочисленную матрицу...

Как можно создать матрицу, например 3х3 в коллекции?
Здравствуйте.Возник вопрос.Как можно создать матрицу,например 3х3 в коллекции?


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

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

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