Вопрос-Ответ (C++)
|
|
Kornival | Дата: Воскресенье, 04 Сентября 2011, 19:10 | Сообщение # 1 |
The Witcher
Сейчас нет на сайте
| Чтобы не создавать отдельную тему на каждый глупый вопрос, предлагаю задавать их здесь.
Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
|
|
| |
Snuux | Дата: Понедельник, 30 Апреля 2012, 18:39 | Сообщение # 301 |
постоянный участник
Сейчас нет на сайте
| Lord_Zeon, а можешь подсказать подробнее, а то что то не получается с выше написанным кодом(?
|
|
| |
Lord_Zeon | Дата: Понедельник, 30 Апреля 2012, 18:47 | Сообщение # 302 |
частый гость
Сейчас нет на сайте
| Snuux, Вот таким способом:
Code #include <iostream>
using namespace std;
#define size 10
void get_array(int arr[size][size]) { for (int i = 0; i < size; i++){ for (int j = 0; j < size; j++){ arr[i][j] = 1; cout << arr[i][j] << endl; } }
}
int main() { int array[size][size] ={0};
get_array(array);
return 0; }
Сообщение отредактировал Lord_Zeon - Понедельник, 30 Апреля 2012, 18:48 |
|
| |
Archido | Дата: Понедельник, 30 Апреля 2012, 19:10 | Сообщение # 303 |
Сэнсэй
Сейчас нет на сайте
| Snuux А что не нравится с передачей через двойной указатель? Самый универсальный вариант
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Snuux | Дата: Понедельник, 30 Апреля 2012, 19:25 | Сообщение # 304 |
постоянный участник
Сейчас нет на сайте
| Archido, нет, нет, все нравиться, спасибо вам всем (просто где-то наткнулся на ужасный, страшный код с использованием двойного указателя (а тут вроде и не страшно) ).
|
|
| |
Тритон | Дата: Понедельник, 30 Апреля 2012, 20:05 | Сообщение # 305 |
постоянный участник
Сейчас нет на сайте
| Quote (Snuux) (жаль без указателей нормально нельзя( ) И чего здесь жалеть?
Добавлено (30.04.2012, 20:05) --------------------------------------------- Quote (Snuux) просто где-то наткнулся на ужасный, страшный код с использованием двойного указателя Не верю. Если страшный и ужасный, то это было наглядное пособие, как делать не надо с простым указателем.
Не всё так плохо, как оно есть на самом деле.
Сообщение отредактировал Тритон - Понедельник, 30 Апреля 2012, 20:05 |
|
| |
GrossCage | Дата: Среда, 02 Мая 2012, 15:56 | Сообщение # 306 |
Плюсовый Сишник
Сейчас нет на сайте
| У меня при дебаге игры встал огромный вопрос. Как узнать полный путь к ехе-шнику игры? Я гуглил, нифига АП!
PixelPong - готов
Сообщение отредактировал GrossCage - Четверг, 03 Мая 2012, 14:54 |
|
| |
Тритон | Дата: Суббота, 05 Мая 2012, 14:47 | Сообщение # 307 |
постоянный участник
Сейчас нет на сайте
| http://www.google.ru/search?rlz=1C1AVSX_enRU457RU457&aq=f&sourceid=chrome&ie=UTF-8&q=c%2B%2B+path#hl=ru&newwindow=1&rlz=1C1AVSX_enRU457RU457&sclient=psy-ab&q=c%2B%2B%20%D0%BF%D1%83%D1%82%D1%8C%20%D0%BA%20exe&oq=c%2B%2B%20%D0%BF%D1%83%D1%82%D1%8C%20%D0%BA&aq=0&aqi=g3g-v1&aql=1&gs_l=serp.11.0.0l3j0i15.17799.21335.0.22634.12.12.0.0.0.3.1076.3798.0j1j8j2j7-1.12.0.erf1.1.1.0.hUn8ZoBsKkk&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=4c11eed90104d3f0&biw=910&bih=444&pf=p&pdl=300, четвёртая ссылка (http://forum.codenet.ru/q34820/).
Не всё так плохо, как оно есть на самом деле.
Сообщение отредактировал Тритон - Суббота, 05 Мая 2012, 14:48 |
|
| |
luiss | Дата: Вторник, 08 Мая 2012, 16:50 | Сообщение # 308 |
был не раз
Сейчас нет на сайте
| if (strchr(vowel, symbol[i])) ch = static_cast<char>(symbol[i] & 0xFC); else ch = static_cast<char>(symbol[i] | 0x0A);
подскажите что делают эти строки?
|
|
| |
Tikara | Дата: Вторник, 08 Мая 2012, 17:48 | Сообщение # 309 |
частый гость
Сейчас нет на сайте
| Quote (luiss) if (strchr(vowel, symbol[i])) ch = static_cast<char>(symbol[i] & 0xFC); else ch = static_cast<char>(symbol[i] | 0x0A);
strchr(vowel, symbol[i]) - ищем первый символ symbol[i] и проверяем найден или нет (здесь, видимо, идёт проверка гласный ли символ в массиве symbol)
ch = static_cast<char>(symbol[i] & 0xFC); - преобразуем int-овое значение symbol[i] в char
|
|
| |
luiss | Дата: Вторник, 08 Мая 2012, 17:52 | Сообщение # 310 |
был не раз
Сейчас нет на сайте
| Quote (Tikara) strchr(vowel, symbol[i]) - ищем первый символ symbol[i] и проверяем найден или нет (здесь, видимо, идёт проверка гласный ли символ в массиве symbol)
ch = static_cast<char>(symbol[i] & 0xFC); - преобразуем int-овое значение symbol[i] в char
откуда вы узнали про поиск гласной (потому что vowel переводится как гласная)? а что означают 16-ричные цифры 0xFC и 0x0A?
Сообщение отредактировал luiss - Вторник, 08 Мая 2012, 18:07 |
|
| |
Tera128 | Дата: Среда, 09 Мая 2012, 02:24 | Сообщение # 311 |
был не раз
Сейчас нет на сайте
| Всем доброго времени суток. Не давно начал изучать С++. Решил попробовать составить простую текстовую игру и не знаю как сделать переход от вторых вопросам к третьим вот код... Code { setlocale( LC_ALL, "Russian" ); int i=0; int a=0; int e=0; int y=0; cout <<"Проходя по улице, вы слышите громкий хлопок.\nВы бежите в ту сторону и видите на полу искрящийся камень.\nВаши действия:\n1.Поднять его и рассмотреть поближе.\n 2.Вызвать пожарных.\n 3.Снимаем его на камеру и выкладываем в youtube.\n 4.Забить на камень и пойти куда шли.\n"; cin >> a; a = a + i; switch (a) { case 1: cout<<"Вы пытаетесь его поднять, но он тяжелее чем вы думали.\nВаши следующие действия:\n 1.Пойду куда шол, зачем мне 300киллограммовый камень\?\n 2.Позвать на помощь прохожих.\n 3.Попытаюсь его сломать ломом.\n 4.Попробовать на вкус.\n"; break; cin >> e; e = e + 4 switch (e) { case 5:Действие1 case 6:Действие2 case 7:Действие3 case 8:Действие4 } case 2: cout<<"Они решают что вы сошли с ума и вместо их к вам приезжает машина с санитарами.\n (Вы проиграли)\n"; break; case 3: cout<<"Вы выкладываете видео в youtube,но все думают что это монтаж\! Шанс прославиться сорвался.\n (вы проиграли)"; break; case 4: cout<<"Вы дошли до своего дома, спокойно зашли в квартиру...Но вас всё равно беспокоит тот камень, вернувшись на то место вы его не находите.\n (вы проиграли)\n"; break; } cin.get(); cin.get(); cin.get(); return 0; } Пытался сделать по разному, но все равно не получалось...Нужен переход от действий- case 1: cout<<"Вы пытаетесь его поднять, но он тяжелее чем вы думали.\nВаши следующие действия:\n 1.Пойду куда шол, зачем мне 300киллограммовый камень\?\n 2.Позвать на помощь прохожих.\n 3.Попытаюсь его сломать ломом.\n 4.Попробовать на вкус.\n"; break; К вопросам { case 5:Действие1 case 6:Действие2 case 7:Действие3 case 8:Действие4 }
Сообщение отредактировал Tera128 - Среда, 09 Мая 2012, 02:27 |
|
| |
Tikara | Дата: Среда, 09 Мая 2012, 06:14 | Сообщение # 312 |
частый гость
Сейчас нет на сайте
| Code switch (a) { case 1: cout<<"Вы пытаетесь его поднять, но он тяжелее чем вы думали.\nВаши следующие действия:\n 1.Пойду куда шол, зачем мне 300киллограммовый камень\?\n 2.Позвать на помощь прохожих.\n 3.Попытаюсь его сломать ломом.\n 4.Попробовать на вкус.\n"; // break здесь не нужен, раз здесь идёт выбор cin >> e; // e = e + 4 ; зачем складывать с 4? switch (e) { case 1:Действие1 case 2:Действие2 case 3:Действие3 case 4:Действие4 } break; // здесь нужен break
Во-первых, ваш код просто ужасен и нелогичен. Во-вторых, если уже смотреть ошибку в вашем алгоритме, то убирите оператор break; перед cin >> e;. switch(a) просто прерывается и не доходит до выполнения cin.
Всё же, если вы собрались сделать линейный квест с небольшим выбором, то используйте switch-case только для выбора вариантов действий.
Рекомендую читануть самоучитель по C++. (не удивлюсь, если такие советы вам уже поступали)
|
|
| |
KpoJIuk | Дата: Среда, 09 Мая 2012, 10:57 | Сообщение # 313 |
In C++ We Trust
Сейчас нет на сайте
| Посоны, подкиньте реализацию или идею. Мне нужно создать динамический массив из объектов своего класса, к каждому из элементов которого должен быть вызван конструктор со своими параметрами.
|
|
| |
Tikara | Дата: Среда, 09 Мая 2012, 12:09 | Сообщение # 314 |
частый гость
Сейчас нет на сайте
| Quote (KpoJIuk) Посоны, подкиньте реализацию или идею. Мне нужно создать динамический массив из объектов своего класса, к каждому из элементов которого должен быть вызван конструктор со своими параметрами.
Code class Object { public: Object(int state); };
Object::Object(int state){ switch(state) { case 1: //... break;
case 2: //... break;
case 3: //... } }
int main(){ Object **obj; obj = new Object*[3]; obj[0] = new Object(1); obj[1] = new Object(2); obj[2] = new Object(3);
}
Я правильно понял?
|
|
| |
KpoJIuk | Дата: Среда, 09 Мая 2012, 12:18 | Сообщение # 315 |
In C++ We Trust
Сейчас нет на сайте
| Tikara, Да, спасибо, попробуем-с.
|
|
| |
Tera128 | Дата: Среда, 09 Мая 2012, 18:29 | Сообщение # 316 |
был не раз
Сейчас нет на сайте
| Quote Во-первых, ваш код просто ужасен и нелогичен. Во-вторых, если уже смотреть ошибку в вашем алгоритме, то убирите оператор break; перед cin >> e;. switch(a) просто прерывается и не доходит до выполнения cin. Я только начал учить С++, прочитал 3-4урока и решил проверить на что хватит моих знаний...
|
|
| |
Тритон | Дата: Пятница, 11 Мая 2012, 07:28 | Сообщение # 317 |
постоянный участник
Сейчас нет на сайте
| luiss, а разве перед else можно ставить точку с запятой?
Не всё так плохо, как оно есть на самом деле.
Сообщение отредактировал Тритон - Пятница, 11 Мая 2012, 07:28 |
|
| |
goldsphere | Дата: Пятница, 11 Мая 2012, 09:58 | Сообщение # 318 |
заслуженный участник
Сейчас нет на сайте
| Тритон, Эт не паскаль...
FinderX - Android Аркада
|
|
| |
Тритон | Дата: Пятница, 11 Мая 2012, 10:06 | Сообщение # 319 |
постоянный участник
Сейчас нет на сайте
| Quote (goldsphere) Тритон, Эт не паскаль... тем более.
Не всё так плохо, как оно есть на самом деле.
|
|
| |
Snuux | Дата: Вторник, 15 Мая 2012, 19:26 | Сообщение # 320 |
постоянный участник
Сейчас нет на сайте
| Ребят слушайте, у меня, что то студия не хочет компилировать хоть какой то код ( (очень странно.. Правда я недавно обновил с Win 7 Home, до Win 7 Enterprise, может из-за этого?)
Собственно вопрос: Какой код - верный? Quote if (a%4 == 1) printf("Число кратно четырем"); Или: Quote if (a%4 == 0) printf("Число кратно четырем"); Добавлено (15.05.2012, 19:22) --------------------------------------------- В интернете искал, а там все по разному... Не знаю кому верить... Добавлено (15.05.2012, 19:26) --------------------------------------------- И ещё вопрос: В обычном языке Си, когда мы объявляем функцию main так: "void main(void){", нужно возвращать значение в конце программы или не нужно? (просто в егэ требуется писать на Си, вот не знаю, вдруг ещё отметят как ошибку...)
|
|
| |