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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
#1

Нужно сгенерировать элементы массива случайным образом с помощью функции rand - C++

17.10.2010, 21:56. Просмотров 1426. Ответов 15
Метки нет (Все метки)

Нужно сгенерировать элементы случайным образом с помощью функции rand. Определить индексы максимального элемента матрицы. Вычислить произведение элементов над главной диагональю.
Я сделал но не rand-ом можете сделать rand-омом?=)
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
#pragma argsused
#include <iostream.h>
using namespace std;
int main()
{
const int n = 5;
int a[n][n];
cout<<"Enter matrix 5x5:\n";
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
cin >> a[i][j];
int max_i = 0, max_j = 0;
int max = a[0][0];
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
if(a[i][j] > max) 
{
max = a[i][j];    
max_i = i; 
max_j = j;
}
int res = 1;
for(int i=0; i<n; i++)
for(int j = n-1; j>i; j--)
res *= a[i][j];   //перемножуєм всі елементи масиву;
cout << "Max element: i = " << max_i << ", j = " << max_j << endl;    максимального елементу;
cout<< "Resultat: " << res<<endl;
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2010, 21:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно сгенерировать элементы массива случайным образом с помощью функции rand (C++):

Создать матрицу А(nxn), сгенерировать елементы случайным образом - C++
Создать матрицу А(nxn), сгенерировать елементы случайным образом. Вычеслить индексы елементов матрицы. Вычеслить суму отрицательных...

Случайным образом сгенерировать массив из 20 чисел (в заданном диапазоне) - C++
Создать программу на С++, в которой случайным образом генерируется массив из 20 чисел (в диапазоне от -50.0 до 40.0) типа float....

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

Сгенерировать случайным образом многочлен P(x) степени N и найти интеграл P(x) от a до b для заданных a и b - C++
Сгенерировать случайным образом многочлен P(x) степени N и найти интеграл P(x) от a до b для заданных a и b. Мыслей совсем нет, подскажите...

Как задать диапазон с помощью функции rand? - C++
В задаче говорится &quot;Дан массив целых чисел (размер – случайное число из диапазона )&quot;. Как задать диапазон с помощью функции...

заполнение массива случайным образом - C++
Помогите на языке Си заполнить массив символов случайным образом символами с кодами в диапазоне от 21 до 254

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
17.10.2010, 21:58 #2
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
#pragma argsused
#include <iostream.h>
#include <ctime>
#include <cstdlib>
 
using namespace std;
int main()
{
srand(time(NULL));
const int n = 5;
int a[n][n];
cout<<"Enter matrix 5x5:\n";
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
    a[i][j]=rand()%50;
int max_i = 0, max_j = 0;
int max = a[0][0];
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
if(a[i][j] > max)
{
max = a[i][j];
max_i = i;
max_j = j;
}
int res = 1;
for(int i=0; i<n; i++)
for(int j = n-1; j>i; j--)
res *= a[i][j]; //перемножуєм всі елементи масиву;
cout << "Max element: i = " << max_i << ", j = " << max_j << endl; максимального елементу;
cout<< "Resultat: " << res<<endl;
system("pause");
return 0;
}
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
17.10.2010, 22:00  [ТС] #3
Вы уверены что ето правильно?
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
17.10.2010, 22:00 #4
Alston, Генерация рандомных чисел по стандарту С++ более чем) От 0 до 50.
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
17.10.2010, 22:30  [ТС] #5
Спасибо Вам=))

Добавлено через 9 минут
что ето значит: srand(time(NULL));

Добавлено через 4 минуты
можна в место етого прописать randomize();?

Добавлено через 52 секунды
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
a[i][j]=rand()%50;
А так можна:
a[i][j]=random(50);

Добавлено через 14 минут
Аууууу, кто скажет?=)
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.10.2010, 22:44 #6
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
#pragma argsused
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
 srand(time(NULL));
 int max_i = 0, max_j = 0, res = 1;
 const int n = 4;
 int a[n][n];
cout<<"Enter matrix 3x3:\n";
 for(int i=0; i<n; i++)
  {
     for(int j=0; j<n; j++)
       {
         a[i][j]=rand()%9;
         cout<<a[i][j]<<"  ";
       }
     cout<<endl;
  }
int max = a[0][0];
 for(int i=0; i<n; i++)
  {
     for(int j=0; j<n; j++)
      { 
          if(a[i][j] > max) //порівнюємо значення введених змінних з максимальним значенням;
             {
                 max = a[i][j]; //якщо введене значення більше, то присвоюємо максимальному її значення;
                 max_i = i; //максимальний індекс;
                 max_j = j;
             }
      }
   }
 int k = n;
for(int i=0; i<n; i++)
     {
        for(int j =k-2; j>=0; j--)
          {
            res*=a[i][j]; //перемножуєм всі елементи масиву;
           }
        k--;
     }   
cout << "Max element: i = " << max_i << ", j = " << max_j << endl; // Виводим на екран значення максимального елементу;
cout<< "Resultat: " <<res<<endl;
system("pause");
return 0;
}
Добавлено через 4 минуты
Цитата Сообщение от Lavroff Посмотреть сообщение
#pragma argsused
#include <iostream.h>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
srand(time(NULL));
const int n = 5;
int a[n][n];
cout<<"Enter matrix 5x5:\n";
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
a[i][j]=rand()%50;
int max_i = 0, max_j = 0;
int max = a[0][0];
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
if(a[i][j] > max)
{
max = a[i][j];
max_i = i;
max_j = j;
}
int res = 1;
for(int i=0; i<n; i++)
for(int j = n-1; j>i; j--)
res *= a[i][j]; //перемножуєм всі елементи масиву;
cout << "Max element: i = " << max_i << ", j = " << max_j << endl; максимального елементу;
cout<< "Resultat: " << res<<endl;
system("pause");
return 0;
}
Я конечно извиняюсь, но вы хоть проверили етот код?

Добавлено через 1 минуту
Цитата Сообщение от Alston Посмотреть сообщение
можна в место етого прописать randomize();?
А что вас собствено смущает?
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
17.10.2010, 22:50  [ТС] #7
А то что мне LAVROFF написал что не правильно?

Добавлено через 2 минуты
Да проверил!!!
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.10.2010, 22:52 #8
Цитата Сообщение от Alston Посмотреть сообщение
А то что мне LAVROFF написал что не правильно?
А что, у вас он нормально работает?
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
17.10.2010, 22:53  [ТС] #9
ну да вроде бы..
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.10.2010, 22:55 #10


http://codepad.org/NcGDkM4x

Добавлено через 34 секунды
Вы результат проверяли?
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
17.10.2010, 22:56  [ТС] #11
у меня нормально компилирует!!!!
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
17.10.2010, 23:13 #12
MILAN, Нет, не проверял естественно. Я сделал только генерацию рандомом и все. То есть дописал 4 строчки. 2 инклада, 2 строчки кода.
А с результатом веселуха - потому как у нас матрица 5 на 5, то есть 25 элементов всего. Матрица забита числами от 0 до 50. Попробуйте перемножить числа от 0 до 50 25 раз, если там нет ни одного нуля и записать это в тип int. Хорошо-ли получится?

Добавлено через 7 минут
Заполняем рандомными числами от 1 до 10. Находим максимум.
Перемножаем элементы только главной диагонали. Или же надо всех, которые ВЫШЕ главной диагонали?

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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using namespace std;
int main()
{
srand(time(NULL));
const int n = 5;
int a[n][n];
cout<<"Enter matrix 5x5:\n";
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
    a[i][j]=rand()%(10+1);
int max_i = 0, max_j = 0;
int max = a[0][0];
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
if(a[i][j] > max)
{
max = a[i][j];
max_i = i;
max_j = j;
}
int res = 1;
for(int i=0; i<n; i++)
res *= a[i][i]; //перемножуєм всі елементи масиву;
cout << "Max element: i = " << max_i << ", j = " << max_j << endl; //максимального елементу;
cout<< "Resultat: " << res<<endl;
system("pause");
return 0;
}
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
17.10.2010, 23:15  [ТС] #13
Так все таки какой вариант правильний?
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
17.10.2010, 23:18 #14
Если всех над главной..
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using namespace std;
int main()
{
srand(time(NULL));
const int n = 5;
int a[n][n];
cout<<"Enter matrix 5x5:\n";
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
    a[i][j]=1+rand()%10;
int max_i = 0, max_j = 0;
int max = a[0][0];
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
if(a[i][j] > max)
{
max = a[i][j];
max_i = i;
max_j = j;
}
int res = 1;
for(int i=1; i<n; i++)
for(int j=i; j<n; ++j)
{
    if(i==j)
        continue;
    res *= a[i][i]; //перемножуєм всі елементи масиву;
}
cout << "Max element: i = " << max_i << ", j = " << max_j << endl; //максимального елементу;
cout<< "Resultat: " << res<<endl;
system("pause");
return 0;
}
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
17.10.2010, 23:19  [ТС] #15
ето правильный да?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2010, 23:19
Привет! Вот еще темы с ответами:

В матрице, сформированной случайным образом, заменить элементы побочной диагонали - C++
В матрице А, сформированной случайным образом, заменить элементы побочной диагонали на минимальное значение матрицы. Нужен статический...

По запрашиваемому количеству строк и столбцов нужно сформировать случайным образом двумерный массив - C++
Помогите пожалуйста. По запрашиваемому количеству строк и столбцов нужно сформировать случайным образом двумерный массив, подсчитываем...

Перемешивание элементов массива случайным образом - C++
Здравствуйте! Помогите пожалуйста. Нужно перемешать елементы массива случайным образом. Масив вводится вручную, а после нужно перемешать...

Перемешивание элементов массива случайным образом - C++
Здравствуйте. Помогите написать функцию, которая рандомно перемешивает элементы массива. void PeremeshivanieMassiva(int m); void...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.10.2010, 23:19
Ответ Создать тему
Опции темы

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