Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Не работает библиотечная функция rand() в C++ на Ubuntu 16.04  (Прочитано 2910 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SNIKERSMRG

  • Автор темы
  • Активист
  • *
  • Сообщений: 353
  • Хм...
    • Просмотр профиля
Добрый вечер.

Учусь программированию на С++ по книге "С++ Базовый курс. Третье издание" от Герберта Шилдта
Компилирую программы с помощью компилятора G++ (например g++ program81.cpp -o program81)


#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
int magic;
int guess;

magic = RAND();

cout << "Введите свой вариант магического числа 1: ";
cin >> guess;

if(guess == magic)
{
cout <<"** Правильно **\n";
cout << magic << "и есть то самое магическое число.\n";
}
else
{
cout << "... Очень жаль но вы ошиблись.";
if (guess > magic)
   cout << "Ваш вариант ответа превышает магическое число.\n";
else
cout << "Ваш вариант меньше магического числа.\n";
      }
return 0;
}



В книге сказано что надо вводить строку magic = rand(); Но так рандом не работает, а программа думает что rand() это переменная.
В случае если писать в коде RAND() вместо rand() то при попытке скомпилировать программу получаем ошибку:

program22.cpp: In function ‘int main()’:
program22.cpp:10:14: error: ‘RAND’ was not declared in this scope magic = RAND();

А еще я раньше столкнулся с проблемой что в книге функция xor вводится маленькими буквами, но у меня так не работает, а работает только тогда, когда ввожу большими XOR

Скажите пожалуйста что не так ? Это особенность C++ на Linux или что ?
Notebook Samsung NP350V5C: 1366x768, Core i5 3210m, 6Gb Ram, 750Gb HDD, Radeon 7670m, Ubuntu 16.04

Оффлайн aSmile

  • Активист
  • *
  • Сообщений: 755
    • Просмотр профиля
Поменял RAND на rand, у меня все собралось. Ubuntu 15.10, gcc 4.9

P.S. не забывай srand в начале

Оффлайн soarin

  • Старожил
  • *
  • Сообщений: 1850
  • ubuntu 20.04
    • Просмотр профиля
Скажите пожалуйста что не так ? Это особенность C++ на Linux или что?
Нет, сам что-то не так делаешь.
Может копируешь код с криво оцифрованной книжки, где в слове rand значится русская буква 'а'
Совет один - надо думать что пишешь и не лениться посмотреть и найти в поиски описание какой-то незнакомой функции
« Последнее редактирование: 04 Мая 2016, 07:18:04 от soarin »

 

Страница сгенерирована за 0.042 секунд. Запросов: 25.