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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 5.00
Лёлик
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 8
#1

Проблемы с rand() в Dev-C++ - C++

09.10.2011, 07:10. Просмотров 5511. Ответов 12
Метки нет (Все метки)

Всем привет=))))Форумчане, нужна ваша помощь!!!!У меня не очень получается с программированием.Мне кажется у меня проблемы с функцией rand()О_о.Сначала числа в матрице генерировались нормально, но при вводе одной и той же размерности, сама матрица не менялась...Я нашла на форуме небольшой пример. После чего у меня начало выводить всякий мусор (т.е. матрица выводилась n-раз), а сейчас и вовсе не запускается...Привожу отрывок кода:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//присвоим значениt матрице а 
            for (int j=0;j<razmer;j++)
            {time_t temp = time(NULL);//получаем время
             srand(temp); //инициализируем генератор случайных чисел полученным временем
            a[i][j] = rand()%(-11)-5; //заполняем матрицу случайным образом от -5 до 5
        }
        }
        //вывод матрицы на экран
        cout<<"Сформированная матрица:\n";
        for(int i=0;i<razmer;i++)
        {
            for(int j=0;j<razmer;j++)
                cout<<setw(5)<<*(*(a+i)+j)<<ends;//setw(5)-ширина поля вывода з iomanip.h
            cout<<endl;
        }
Ещё в конце проги
C++
1
2
3
4
getch();
system("pause");//может из-за этого ошибка?????
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2011, 07:10     Проблемы с rand() в Dev-C++
Посмотрите здесь:

C++ rand()
rand C++
C++ rand() не случайный
rand C++
rand() C++
C++ функция rand()
C++ rand от 1 до 16
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
09.10.2011, 15:33     Проблемы с rand() в Dev-C++ #2
нет, ошибка не в rand() и не в system("PAUSE"), хотя зачем вам и getch(); и system("PAUSE");? Используйте что-то одно из них
Вот программа, которая генерирует матрицу случайных чисел и выводит ее на экран (1 раз). Массив статический
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
#include <iostream>
#include <iomanip>
#include<ctime>
using namespace std;
 
int main()
{
   setlocale(LC_ALL,"Russian");
   const int razmer_i=4, razmer_j=5;
   int a[razmer_i][razmer_j];
   srand(time(NULL)); //инициализируем генератор случайных чисел полученным временем
   for(int i=0;i<razmer_i;i++)
       for(int j=0;j<razmer_j;j++)
            a[i][j] = rand()%(-11)-5; //заполняем матрицу случайным образом от -5 до 5
 
    //вывод матрицы на экран
    cout<<"Сформированная матрица:\n";
    for(int i=0;i<razmer_i;i++)
    {
        for(int j=0;j<razmer_j;j++)
    cout<<setw(5)<<*(*(a+i)+j)<<ends;//setw(5)-ширина поля вывода з iomanip.h
        cout<<endl;
    }
    system("PAUSE");
}
kravam
быдлокодер
1696 / 875 / 44
Регистрация: 04.06.2008
Сообщений: 5,342
09.10.2011, 16:08     Проблемы с rand() в Dev-C++ #3
Лёлик,ты матрицу неправильно формируещь,
C++
1
2
   time_t temp = time(NULL);
   srand(temp);
НАдо один раз делать то есть так примерно:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
 
//это вся память выделяем
int** a= new int* [razmer];
 
 for (int i= 0; i< razmer; i++) {
  a[i]= new int [razmer];
 }
 
 //Один раз так написали 
srand(temp(0)); 
 
 for(int i= 0;i< razmer; i++) {
  for (int j= 0; j< razmer; j++) {
   a[i][j] = rand()%(-11)-5; 
   
   //Получаем случайные числап
   printf ("a[i][j]= %d\n", a[i][j]);
  }
  cout<<endl;
 }
Лёлик
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 8
09.10.2011, 17:35  [ТС]     Проблемы с rand() в Dev-C++ #4
Спасибо большое за подсказку...Обязательно учту=)))))))))Я уже и не думала, что мне кто-то поможет)))

Добавлено через 3 минуты
Ага...Вот почему у меня программа такую "краказябру" выводит...Спасибочки=)))

Добавлено через 54 минуты
kravam, Что-то в представленной задаче компилятор ругается на библиотеку "cstdlib"
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
#include <iostream>
#include<ctime>
#include <cstdlib>//Г± ýòîé áèáëèîòåêîé ГЄГ*ГЄГіГѕ- ГІГ® îøèáêó âûáèâГ*ГҐГІ
using namespace std;
int main(){
 cout<<"Ââåäèòå Г°Г*çìåðГ*îñòü Г¬Г*òðèöû ГЊГЂ:\n";
cin>>razmer;
 
//ГЅГІГ® ГўГ±Гї ГЇГ*ìÿòü âûäåëÿåì
int** a= new int* [razmer];
 
 for (int i= 0; i< razmer; i++) {
  a[i]= new int [razmer];
 }
 
 //ÎäèГ* Г°Г*Г§ ГІГ*ГЄ Г*Г*ГЇГЁГ±Г*ëè 
srand(temp(0)); 
 
 for(int i= 0;i< razmer; i++) {
  for (int j= 0; j< razmer; j++) {
   a[i][j] = rand()%(-11)-5; 
   
   //Ïîëó÷Г*ГҐГ¬ ñëó÷Г*Г©Г*ûå Г·ГЁГ±Г«Г*ГЇ
   printf ("a[i][j]= %d\n", a[i][j]);
  }
  cout<<endl;
 }getch();
 return 0;
 }
Добавлено через 4 минуты
Ой, забыла добавить int razmer; - но результат тот же.

Добавлено через 15 секунд
Ой, забыла добавить int razmer; - но результат тот же.
kravam
быдлокодер
1696 / 875 / 44
Регистрация: 04.06.2008
Сообщений: 5,342
09.10.2011, 17:44     Проблемы с rand() в Dev-C++ #5
А та библиотека зачем? Не пойму.
Вот так надо, но надо ещё и аамять освобождат delete, это ты сама сделай.

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
37
38
39
40
41
42
43
44
45
46
47
48
#include <windows.h>
#include <iostream>
#include <string>
#include <iomanip>
 
#define razmer 5
 
using namespace std;
 
 
 
int main() {
 SetConsoleCP (1251);
 SetConsoleOutputCP (1251);
 
 
 
 int** a= new int* [razmer];
 
 for (int i= 0; i< razmer; i++) {
  a[i]= new int [razmer];
 }
 
   time_t temp = time(NULL);//получаем время
   srand(temp); //инициализируем генератор случайных чисел полученным временем
 
//присвоим значениt матрице а
 for(int i= 0;i< razmer; i++) {
  for (int j= 0; j< razmer; j++) {
   a[i][j] = rand()%(-11)-5; //заполняем матрицу случайным образом от -5 до 5
   printf ("a[i][j]= %d\n", a[i][j]);
  }
  cout<<endl;
 }
 //вывод матрицы на экран
 cout<<"Сформированная матрица:\n";
 for(int i=0;i<razmer;i++) {
  for(int j=0;j<razmer;j++)
   cout<<setw(5)<<*(*(a+i)+j)<<ends;//setw(5)-ширина поля вывода з iomanip.h
  cout<<endl;
 }
 
 getchar ();
 
 
 
 return 0;
}
Добавлено через 45 секунд
Ну под себя подгони типа там размерность матрицы вводи с консоли и прочая.
Лёлик
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 8
09.10.2011, 17:54  [ТС]     Проблемы с rand() в Dev-C++ #6
Я читала в Интернете, что в этой библиотеке cstdlib- хранятся rand (), srand ():/
kravam
быдлокодер
1696 / 875 / 44
Регистрация: 04.06.2008
Сообщений: 5,342
09.10.2011, 18:17     Проблемы с rand() в Dev-C++ #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main () {
 srand (time(0));
 while (1) {
  rand();
  printf ("%d\n  ",  rand ());
  getchar ();
 }
 return 0;
}
Ошибку написала бы...
Лёлик
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 8
09.10.2011, 18:26  [ТС]     Проблемы с rand() в Dev-C++ #8
К большому сожалению...У меня не отображается журнал компиляции...Но компилятор просто перебрасывает меня на строку #include <cstdlib> в новом окошке под названием stl_algobase.h

Добавлено через 5 минут
И вот тоже...Перекинул на строку в новой программе(ту что кинул ты мне) =>srand (time(0)); Извени,я тебе уже наверное надоела=)))
kravam
быдлокодер
1696 / 875 / 44
Регистрация: 04.06.2008
Сообщений: 5,342
09.10.2011, 18:30     Проблемы с rand() в Dev-C++ #9
Попытаемся разобраться или так оставим?

Добавлено через 53 секунды
Ошибки надо. Не дело работать с ненастроенной IDE.

Добавлено через 55 секунд
Дай скриншот Dev- Cpp когда он перекидывает
"на строку в новой программе(ту что кинул ты мне) =>srand (time(0));"
Лёлик
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 8
09.10.2011, 18:41  [ТС]     Проблемы с rand() в Dev-C++ #10
Воттт...
Миниатюры
Проблемы с rand() в Dev-C++  
Лёлик
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 8
09.10.2011, 18:42  [ТС]     Проблемы с rand() в Dev-C++ #11
/////////
Миниатюры
Проблемы с rand() в Dev-C++  
kravam
быдлокодер
1696 / 875 / 44
Регистрация: 04.06.2008
Сообщений: 5,342
09.10.2011, 18:57     Проблемы с rand() в Dev-C++ #12
Старо, даже не возьмусь. А мой тебе совет: скачай стабильную версию 4.9.9.2, она стабильна аж с 2004 года. И учись себе помаленьку. По ней хоть что-то посоветовать можно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2011, 19:05     Проблемы с rand() в Dev-C++
Еще ссылки по теме:

rand()%(-20)%(20); C++
rand C++
rand() C++
Глючит rand C++
Rand() C++

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

Или воспользуйтесь поиском по форуму:
Лёлик
0 / 0 / 0
Регистрация: 09.10.2011
Сообщений: 8
09.10.2011, 19:05  [ТС]     Проблемы с rand() в Dev-C++ #13
Нет...менять пока не буду...мне просто курсак по потока писать....здесь уже всё настроено под pthread....
Yandex
Объявления
09.10.2011, 19:05     Проблемы с rand() в Dev-C++
Ответ Создать тему
Опции темы

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