Форум программистов, компьютерный форум CyberForum.ru

Рандом rand - C++

Восстановить пароль Регистрация
 
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
01.08.2013, 14:36     Рандом rand #1
Решаю задачу из одной книги, так там нужно чтоб пользователю выбивало число (номер счета), не обязательно рандомное, но я решил что лучше сделать рандом
Написал вот так:
C++
1
int number_us = rand() % 100; // % 100 делаю для того чтоб число было не больше 100 :)
Но когда запускаю прогу она постоянно выбивает одно и то же число (41)
Подскажите, как это исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2013, 14:36     Рандом rand
Посмотрите здесь:

C++ rand()
rand C++
rand() C++
Rand - рандом не повторяющихся чисел C++
C++ rand от 1 до 16
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
01.08.2013, 14:38     Рандом rand #2
Цитата Сообщение от Даниил Посмотреть сообщение
Подскажите, как это исправить?
C++
1
2
#include <stdlib.h>  
 srand (time(NULL));
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
01.08.2013, 14:39  [ТС]     Рандом rand #3
Можно пример на моей же программе?
C++
1
2
3
4
5
6
int main() {
srand ( time ( NULL ) );
int us;
cout << us;
return 0;
}
Т.е. все числа будут рандомными?
Или как ?
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
01.08.2013, 14:42     Рандом rand #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */
using namespace std;
int main(){
 
srand ( time ( NULL ) );
int us;
us=rand()%100;
cout << us;
 
    system("pause");
    return 0;
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,900
Записей в блоге: 2
Завершенные тесты: 1
01.08.2013, 14:42     Рандом rand #5
Цитата Сообщение от Даниил Посмотреть сообщение
Т.е. все числа будут рандомными?
Псевдорандомными
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <cstdlib>
#include <ctime>
 
int main() {
   srand ( time ( NULL ) ) ;
   int us = rand ( ) % 100 ;
   std::cout << us;
}
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
01.08.2013, 14:43  [ТС]     Рандом rand #6
Спасибо, работает!
h_wolf
 Аватар для h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 211
01.08.2013, 14:44     Рандом rand #7
Пусть более опытные меня поправят если не прав но надо вот так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    int i=0;
    srand(time(NULL));
    i=rand();
    cout<<i;
 
    return 0;
}
Croessmah
01.08.2013, 14:45
  #8

Не по теме:

Цитата Сообщение от h_wolf Посмотреть сообщение
но надо вот так
а в чем, собственно отличие?

h_wolf
01.08.2013, 14:47
  #9

Не по теме:


Отличия нет, надо было просто страницу обновить перед постингом

Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
01.08.2013, 14:52  [ТС]     Рандом rand #10
Сорри что 2 вопроса в одной теме, но есть ещё одно, смотрите, допустим я выдал пользователю номер его счёта, далее нужно чтоб он сохранился в .txt файле, и при следующем входе номер считывался и пользователь мог пользоваться своим счётом
Как записать номер в файл я знаю, а вот как сделать чтоб
при следующем входе номер считывался и пользователь мог пользоваться своим счётом
не знаю
Есть мысль:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <fstream> 
using namespace std;
 
int main() {
   srand ( time ( NULL ) ) ;
   int us = rand ( ) % 100 ;
   cout << us;
   ofstream write_file (number.txt);
   write_file << us;
}
Но есть ошибки
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
01.08.2013, 14:56     Рандом rand #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */
#include<fstream>
using namespace std;
int main(){
 
srand ( time ( NULL ) ) ;
   int us = rand ( ) % 100 ;
   cout << us;
   ofstream write_file ("number.txt");
   write_file << us;
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2013, 15:36     Рандом rand
Еще ссылки по теме:

rand()%(-20)%(20); C++
rand() C++
Rand() C++

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

Или воспользуйтесь поиском по форуму:
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
01.08.2013, 15:36  [ТС]     Рандом rand #12
Ахах, только что хотел написать что реализовал запись в файл, и тот же код
А можно сделать так чтоб при следующем входе был тот же номер счёта?
Или это трудно?
Если трудно то не нужно, буду так

Добавлено через 38 минут
С задачей немного проморочился, просто не дочитал всю задачу
Но слава Богу что я посмотрел ещё раз на книгу
Вообщем вот решение задачи ( вдруг кому-то понадобится ):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "stdafx.h"
#include <iostream>
#include <fstream> 
#include <conio.h>
#include <clocale>
using namespace std;
 
int main() {
    setlocale (0,"");
   int us;
   int n_month;
   cout << "Введите номер счета: ";
   cin >> us;
   cout << "Введи начальный баланс: ";
   cin >> n_month;
   ofstream write_file ("number.txt");
   write_file << us;
   cout << "Сколько денег за месяц израсходовали? ";
   int money;
   cin >> money;
   int predel;
   cout << "Введите предел кредита - ";
   cin >> predel;
   cout << "Введите сумму прихода - ";
   int prixod;
   cin >> prixod;
   int new_balanc = n_month + money - prixod;
   if (new_balanc > predel) {
       cout << "Счет: " << us << endl << "Предел кредита: " << predel << endl << "Новый баланс: " << new_balanc << endl << "Предел кредита превышен!" << endl;
   }
   else if (predel > new_balanc) {
       cout << "Новый баланс: " << new_balanc << endl;
   }
   getch();
   return 0;
}
P.S. Задача из книги Дейтела "Как программировать на С++" 5 издание
Всем спасибо за помощь!
Yandex
Объявления
01.08.2013, 15:36     Рандом rand
Ответ Создать тему
Опции темы

Текущее время: 08:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru