Пятница, 15 Ноября 2024, 19:31

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-Ответ (C++)
KornivalДата: Воскресенье, 04 Сентября 2011, 19:10 | Сообщение # 1
The Witcher
Сейчас нет на сайте
Чтобы не создавать отдельную тему на каждый глупый вопрос, предлагаю задавать их здесь.

Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
WPhoeniXWДата: Воскресенье, 25 Ноября 2012, 12:09 | Сообщение # 721
участник
Сейчас нет на сайте
Блин ну подумай это же ... не зря же учат .
Code
if (min2>A[j])

сейчас мин2 такое же значит
чтоб мин2 !=мин 1
!= не равно


" Кто в страхе живет, тот и гибнет от страха. "
Леонардо Да Винчи
LevriteДата: Воскресенье, 25 Ноября 2012, 12:13 | Сообщение # 722
участник
Сейчас нет на сайте
WPhoeniXW, лично в моём комплитяторе( vs10) такое условие не работает, просто игнорируется, даже мин2 > мин1 не стало работать.

sem6666Дата: Воскресенье, 25 Ноября 2012, 13:52 | Сообщение # 723
участник
Сейчас нет на сайте
Так вот если я так напишу:
Code

for (j=1; j<8; j++)
    if (min2>A[j])
     min2!=min1;   

то второе число получается 0.
Да и выдаёт ещё предупреждение: Предупреждение: 1warning C4552: !=: оператор не имеет результата; требуется оператор с побочным действием


Сообщение отредактировал sem6666 - Воскресенье, 25 Ноября 2012, 13:58
НохчиДата: Воскресенье, 25 Ноября 2012, 14:39 | Сообщение # 724
заслуженный участник
Сейчас нет на сайте
Дурдом.
Code


   int min_1 = arr[0];
   int min_2 = arr[0];
   for(int i = 0; i<size; i++)
   {
    if(min_1 > arr[i])
     min_1 = arr[i];
   }

   for(int i = 0; i<size; i++)
   {
    if(min_2 > arr[i] && arr[i] != min_1)
     min_2 = arr[i];
   }

   printf("%d\n%d", min_1, min_2);


Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Воскресенье, 25 Ноября 2012, 14:40
sem6666Дата: Воскресенье, 25 Ноября 2012, 15:07 | Сообщение # 725
участник
Сейчас нет на сайте
Нохчи, огромное спасибо! Даже не представляешь как выручил
Animan2010Дата: Понедельник, 26 Ноября 2012, 22:55 | Сообщение # 726
постоянный участник
Сейчас нет на сайте
Вопрос возник:
В файле main.cpp подключены инклюдом файлы player.h и game.cpp;
player.h содержит определение класса cPlayer.
В файле main.cpp объявлен объект player класса cPlayer.
В файле game.cpp, в свою очередь, ничего не написано, кроме
"
void new_game()
{
player.initialize();
}
"
Эта функция вызывается в main.cpp.
Однако компилятор выдает ошибку - 'player' : undeclared identifier (ошибка в файле game.cpp)
extern cPlayer player не помогает =(
Как можно мои косяки исправить? :3 Не хочется всё в один файл запихивать просто.


Anima Games
Animan Publishing
НохчиДата: Понедельник, 26 Ноября 2012, 23:36 | Сообщение # 727
заслуженный участник
Сейчас нет на сайте
*.CPP не нужно подключать инклюдом
Game.h подключи player.h и объяви нужные функции, в Game.cpp подключи Game.h, объяви свой extern cPlayer player, и реализуй функции. В main.cpp включи Game.h


Многие вопросы по Windows отпадут, если посмотреть тут
Animan2010Дата: Вторник, 27 Ноября 2012, 13:54 | Сообщение # 728
постоянный участник
Сейчас нет на сайте
Спс, Нохчи =)
Есть ещё вопрос:
Можно ли, к примеру, в Game.h подключить Player.h (класс cPlayer) и Enemy.h (класс cEnemy), а в классе cPlayer сделать функцию, к примеру
void attack(cEnemy* enemy)
{...}
?
Или придётся продумывать "логику" кода?
Просто часто бывает нужно то, чтобы файлы кода A и B могли как-то взаимодействовать с файлом C, но вроде бы нельзя подключать один и тот же файл дважды. (redefininition class или что-то вроде этого выскакивает)


Anima Games
Animan Publishing
ArchidoДата: Вторник, 27 Ноября 2012, 14:18 | Сообщение # 729
Сэнсэй
Сейчас нет на сайте
Quote (Animan2010)
а в классе cPlayer сделать функцию, к примеру void attack(cEnemy* enemy)

Ну, если это делать в классе cPlayer, который расположен в файле Player.h, то логичнее в последнем подключить Enemy.h и делать эту самую функцию.
Ну а вообще как ты написал - делать можно. Главное чтобы файлы не инклудили друг друга, образовывая таким образом замкнутый круг. А для "борьбы" с повторным подключением заголовочных файлов придумали Include guards


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Animan2010Дата: Вторник, 27 Ноября 2012, 14:54 | Сообщение # 730
постоянный участник
Сейчас нет на сайте
Archido, просто иногда было бы удобнее, если бы в двух разных файлах был бы виден другой, один и тот же файл, так сказать.

Anima Games
Animan Publishing
goldsphereДата: Среда, 05 Декабря 2012, 12:16 | Сообщение # 731
заслуженный участник
Сейчас нет на сайте
Как лучше? Унаследовать класс Build от класса Sprite или добавить в виде члена.
Пример:
class Build
{
Sprite sprite;
};


FinderX - Android Аркада

Сообщение отредактировал goldsphere - Среда, 05 Декабря 2012, 12:51
ArchidoДата: Среда, 05 Декабря 2012, 12:28 | Сообщение # 732
Сэнсэй
Сейчас нет на сайте
А что есть что? smile И какие задачи оно должно выполнять? Но, скорее всего оставить как есть, ибо Build унаследованный от Sprite'a - это будет что-то совсем не логичное.

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
goldsphereДата: Среда, 05 Декабря 2012, 12:47 | Сообщение # 733
заслуженный участник
Сейчас нет на сайте
Build - конкретно игровой объект, класс sprite я создавал для удобства, там реализована загрузка текстуры, инициализация самого спрайта и функция рендера.

FinderX - Android Аркада
ArchidoДата: Среда, 05 Декабря 2012, 12:59 | Сообщение # 734
Сэнсэй
Сейчас нет на сайте
Тогда наследовать не стоит, ибо разные сущности все таки (sprite - чисто рендер объект, его при необходимости просто заменить можно, без проблем). Кстати, такой способ создания нового класса называется агрегацией

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 05 Декабря 2012, 13:01
sem6666Дата: Пятница, 07 Декабря 2012, 20:11 | Сообщение # 735
участник
Сейчас нет на сайте
Помогите сдать последнее зачётное задание: Для заданной матрицы n-го порядка найти такие k, что k-я строка совпадает с k-м столбцом. Для каждой строки матрицы с нечетным номером найти среднее арифметическое ее элементов. Условный оператор не использовать.
Code

#include "stdafx.h"
#include <stdio.h>
#include <locale.h>
int a [3] [3]={{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int main ()
{
  int S=0;
  int i,j,n,m,k;
  for {i=0; i<n; i++);
  for (j=0; j<m; j++);
  {
   a[i][j]=(n=m);
   {

Уже на этом ошибку выдаёт.
WPhoeniXWДата: Пятница, 07 Декабря 2012, 21:33 | Сообщение # 736
участник
Сейчас нет на сайте
ещё бы, после for ; ставить .

Тебе конечно может и подскажут , но скажи зачем тебе программирование если ты уже на первой ступеньке обучения падаешь ?


" Кто в страхе живет, тот и гибнет от страха. "
Леонардо Да Винчи
sem6666Дата: Пятница, 07 Декабря 2012, 21:42 | Сообщение # 737
участник
Сейчас нет на сайте
Препод не спрашивает, нужно или нет. Ему главное чтоб сдал его предмет.

Сообщение отредактировал sem6666 - Пятница, 07 Декабря 2012, 21:51
gtasa_loveДата: Суббота, 08 Декабря 2012, 14:23 | Сообщение # 738
частый гость
Сейчас нет на сайте
как сделать что бы читалась строка не та которое стоит на определенном месте
а что бы читалась строка где есть определенный символ допустим символ G ,хоть был бы на 1 хоть на 5 строке ,ну он бы выводилось в 1 строке консоли


НохчиДата: Суббота, 08 Декабря 2012, 18:29 | Сообщение # 739
заслуженный участник
Сейчас нет на сайте
gtasa_love, читать последовательно строки и проверять, есть ли них нужный символ.

Многие вопросы по Windows отпадут, если посмотреть тут
masb8ly-GCДата: Воскресенье, 09 Декабря 2012, 02:58 | Сообщение # 740
постоянный участник
Сейчас нет на сайте
gtasa_love, читаешь все строки последовательно, посимвольно разбиваешь и проверяешь на наличие символа G, в случае если он имеется, то выводишь строку.

Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
Chief Technology Officer RoyalePlay Games
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг