Пятница, 15 Ноября 2024, 17:51

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

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

Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
gtasa_loveДата: Воскресенье, 09 Декабря 2012, 07:34 | Сообщение # 741
частый гость
Сейчас нет на сайте
Quote (masb8ly-GC)
gtasa_love, читаешь все строки последовательно, посимвольно разбиваешь и проверяешь на наличие символа G, в случае если он имеется, то выводишь строку.

спс сам забыл про функцию string.find


sem6666Дата: Воскресенье, 09 Декабря 2012, 13:24 | Сообщение # 742
участник
Сейчас нет на сайте
Помогите хоть чем нибудь с вопросом выше(
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;
  int n=[0]; m=[0];
  for {i=0; i<n; i++)
  for (j=0; j<m; j++)
   a[i][j]=(n=m);  
  return 0;   
}

даже так, всё равно ошибки. Хотя бы алгоритм подскажите
ApatiДата: Воскресенье, 09 Декабря 2012, 13:53 | Сообщение # 743
заслуженный участник
Сейчас нет на сайте
sem6666,
Code

#include <iostream>

#define N 4

int main()
{
  int m[N][N];
  for (int i=0; i<N; ++i)
   for (int j=0; j<N; ++j)
    m[i][j] = i+j;
   
  std::cout << "K:" << std::endl;
  for (int i=0; i<N; ++i)   
  {
   for (int j=0; j<N; ++j)
   {
    while( m[i][j] - m[j][i] )
    {
     j=N;
     break;
    }
    while(j == N-1)
    {
     std::cout << i << std::endl;
     break;
    }
   }
  }
   
  std::cout << "Average:" << std::endl;
  for (int i=0; i<N; ++i)   
  {
   while(i%2)
   {
    int ave = 0;
    for (int j=0; j<N; ++j)
    {
     ave += m[i][j];
    }
    std::cout << i << ": " << (float)ave/(float)N << std::endl;
    break;
   }
  }
  return 0;
}
sem6666Дата: Воскресенье, 09 Декабря 2012, 14:52 | Сообщение # 744
участник
Сейчас нет на сайте
Apati, спасибо. Попробую переделать, до завтра время есть ещё. вся проблема в том, что нельзя подключать #include <iostream>, только #include <stdio.h>
gtasa_loveДата: Воскресенье, 09 Декабря 2012, 16:38 | Сообщение # 745
частый гость
Сейчас нет на сайте
Quote (sem6666)
опробую переделать, до завтра время есть ещё. вся проблема в том, что нельзя подключать #include <iostream>, только #include <stdio.h>

попробуй iostream.h biggrin


LevriteДата: Воскресенье, 09 Декабря 2012, 16:56 | Сообщение # 746
участник
Сейчас нет на сайте
sem6666, ну что теперь не жить? Переделай cout на print'ы и юзай своё stdio.h

sem6666Дата: Воскресенье, 09 Декабря 2012, 17:50 | Сообщение # 747
участник
Сейчас нет на сайте
Levrite, простая переделка под printf не помогает:(
Code

#include "stdafx.h"
#include <stdio.h>   

   #define N 4   

   int main()   
   {   
    int m[N][N];   
    for (int i=0; i<N; ++i)   
     for (int j=0; j<N; ++j)   
      m[i][j] = i+j;   
       
    std::printf("K:") std::endl;   
    for (int i=0; i<N; ++i)     
    {   
     for (int j=0; j<N; ++j)   
     {   
      while( m[i][j] - m[j][i] )   
      {   
       j=N;   
       break;   
      }   
      while(j == N-1)   
      {   
       std::printf(i) std::endl;   
       break;   
      }   
     }   
    }   
       
    std::printf("Average:") std::endl;   
    for (int i=0; i<N; ++i)     
    {   
     while(i%2)   
     {   
      int ave = 0;   
      for (int j=0; j<N; ++j)   
      {   
       ave += m[i][j];   
      }   
      std::printf(i ": ")  (float)ave/(float)N << std::endl;   
      break;   
     }   
    }   
    return 0;   
   }

Результат 18 ошибок. Вот это надо ещё на что то заменить std.


Сообщение отредактировал sem6666 - Воскресенье, 09 Декабря 2012, 18:02
SaiteiДата: Воскресенье, 09 Декабря 2012, 17:59 | Сообщение # 748
старожил
Сейчас нет на сайте
здравствуйте! Я использую для ввода значений переменным cin. Часто так бывает, что пользователь вводит некорректные данные с точки зрения компьютера. Например в int a кто-то пытается запихнуть "пвып" или "2,2". Скажите пожалуйста, как "ограничить" и "наладить" всё это дело? Не думаю, что всё очень сложно, но для меня это будет очень полезно. Заранее спасибо - жду с нетерпением!
RUNGOGET2THECHOPAHДата: Воскресенье, 09 Декабря 2012, 19:22 | Сообщение # 749
участник
Сейчас нет на сайте
Saitei, можно считывать то, что ввел пользователь, как строку. А после этого посимвольно проверять, нет ли в ней запрещенных символов (в твоем примере - это все символы, кроме цифровых).
Code

#include <stdio.h>
#include <iostream>

using namespace std;

bool ReadInt(int* n)
{
  char buf[256];
  cin>>buf;
  for (unsigned int i = 0; i < strlen(buf); i++)
  {
   if (buf[i]!='0'&&buf[i]!='1'&&buf[i]!='2'&&buf[i]!='3'&&buf[i]!='4'&&buf[i]!='5'&&buf[i]!='6'&&buf[i]!='7'&&buf[i]!='8'&&buf[i]!='9')
   {
    return false;
   }
  }
  (*n) = atoi(buf);
  return true;
}

int main()
{
  int num = 0;

  if (ReadInt(&num))
   cout<<"You entered: "<<num<<endl;
  else
   cout<<"Error!"<<endl;

  return 0;
}
goldsphereДата: Понедельник, 10 Декабря 2012, 08:42 | Сообщение # 750
заслуженный участник
Сейчас нет на сайте
sem6666, Эм, сударь, вы скрестили Си и Си++ грязнейшим образом
std::printf("K:") std::endl;

std - это пространство имён Си++, в Си вроде как даже не было понятия такого, endl - объект Си++ он находится там же где и cout, в iostream.

printf("K: \n");

насчёт /n не уверен есть ли оно в Си


FinderX - Android Аркада
sem6666Дата: Понедельник, 10 Декабря 2012, 14:37 | Сообщение # 751
участник
Сейчас нет на сайте
Честно, в си не разбираюсь. Мне нужно только для зачёта:(чуть выше дали пример, но как переделать, не знаю. У меня инфрматика не основной предмет, а сдать всё равно надо. И вот #include <iostream> подключать нельзя, #include <stdio.h> только это. И это и вызывает затруднение std, endl, cout - как правильно их перевести.
goldsphereДата: Понедельник, 10 Декабря 2012, 15:20 | Сообщение # 752
заслуженный участник
Сейчас нет на сайте
std::cout<<"text or var"; или cout = printf("text or var");
std::cout<<"text or var"; std::endl или endl = printf("text or var \n");


FinderX - Android Аркада
LevriteДата: Понедельник, 10 Декабря 2012, 16:15 | Сообщение # 753
участник
Сейчас нет на сайте
goldsphere, cout и cin это операторы из библиотеки iostream на сколько мне известно.
sem6666, читай синтаксис по print\f.


Aed_MindgartДата: Понедельник, 10 Декабря 2012, 22:46 | Сообщение # 754
участник
Сейчас нет на сайте
Помогите решить проблему. Она касается скорее не самого языка;
есть такой код
Code
#include "TitleScene.h"
using namespace cocos2d;

TitleScene::~TitleScene()
{
}
TitleScene::TitleScene(){
}

и есть такая ошибка :D
Code
------ Построение начато: проект: cute_w_vc10, Конфигурация: X86 Debug Win32 ------
1>  TitleScene.cpp
1>d:\help\bb\cppsht\cutew\cute_w\classes\titlescene.cpp(2): error C2143: синтаксическая ошибка: отсутствие ";" перед "using"


И так почти во всех файлах. Часть кода я копипастил построчно, сами файлы создавал вручную в блокноте. Может быть ошибка кодирования?
visual studio 2010
SaiteiДата: Вторник, 11 Декабря 2012, 00:01 | Сообщение # 755
старожил
Сейчас нет на сайте
Quote (Aed_Mindgart)
using namespace cocos2d;

<cocos2d.h>

Добавлено (11.12.2012, 00:01)
---------------------------------------------

Quote (Saitei)
<cocos2d.h>

p.s. его подключал?
Aed_MindgartДата: Вторник, 11 Декабря 2012, 00:11 | Сообщение # 756
участник
Сейчас нет на сайте
Quote (Saitei)
p.s. его подключал?

в header-файле.
Буду строить проект заново, надеюсь не повторится.
Если бы просто кокос, так надо поверх мармелада ставить D:
ad141Дата: Пятница, 14 Декабря 2012, 16:15 | Сообщение # 757
почетный гость
Сейчас нет на сайте
Как сделать в начале код так чтобы например:

если Unix то
#include <GL/freeglut.h>
если Win32 то
#include <GL\freeglut.h>

Извиняюсь... Оказывается всё работает... Но всё ровно научите работать с #if #end if



Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...


Сообщение отредактировал ad141 - Пятница, 14 Декабря 2012, 16:19
Aed_MindgartДата: Пятница, 14 Декабря 2012, 16:43 | Сообщение # 758
участник
Сейчас нет на сайте
Code
#ifdef __unix
#include <GL/freeglut.h>

#elif _WIN32
#include <GL\freeglut.h>

#endif


Макрос может отличаться в зависимости от компилятора.
ad141Дата: Суббота, 15 Декабря 2012, 14:50 | Сообщение # 759
почетный гость
Сейчас нет на сайте
Как вращать куб по двум осям?

X и Z оси...

К примеру с помощью клавиш стрелок...

Как бы куб перекатывается... Как реализовать?
Получается только независимое вращение по одной оси...



Баблосы здесь... Зарегестрируйся и начни получать деньги... Платят мало, но стабильно, а самое главное платят! а не обещают...
goldsphereДата: Суббота, 15 Декабря 2012, 15:51 | Сообщение # 760
заслуженный участник
Сейчас нет на сайте
glRotatef(angel, x, y, z);
Выбираешь оси которые нужные и ставишь туда 1, пример
glRotatef(30, 1, 1, 0);

Добавлено (15.12.2012, 15:50)
---------------------------------------------
Сори не так вопрос прочёл;
void Timer(int value)
{
glColor3f(1.0, 1.0, 1.0);
glutPostRedisplay();
glutTimerFunc(50, Timer, 0);
}

void Keyboard(unsigned char key)
{
switch(key)
{
case GLUT_KEY_LEFT: angle++;
break;
case GLUT_KEY_RIGHT: angle--;
break;
}
}

Добавлено (15.12.2012, 15:51)
---------------------------------------------
Вообще давно OpenGL не занимался могу быть не прав


FinderX - Android Аркада

Сообщение отредактировал goldsphere - Суббота, 15 Декабря 2012, 15:51
Поиск:

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