Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2012, 22:38   #1
Ромашка68
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 15
По умолчанию Решение рандома

Матрицу A(m,n) случайным образом заполнить разными целыми числами от 1 до m x n. Код Borland C++ 3.11

Код:
#include <iostream.h>
#include <math.h>
#include <STDLIB.H>
main()
{
int*Arr;
int M, k1, N;
cout«"Razmer matrici:\nM=";
cin»M;
cout«"\nN=";
cin»N;
k1=M*N;
Arr=new int[k1];
cin»M;
cin»N;
int i, a;
for(int i = 0; i < N; i++)
{
for(int a = 0; a < M; a++)
{
Z = rand();
if((Z < M * N) && Z > 1);
matrix[ i ][ a ] = Z;
}
}
return 0;
}


Что то тут не правильно!!!
Компилятор Borland C++ 3.11

Последний раз редактировалось ACE Valery; 08.06.2012 в 01:05.
Ромашка68 вне форума Ответить с цитированием
Старый 07.06.2012, 22:43   #2
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

Код:
Z=rand()%m*n-1;
попробуйте так.
Спеши медленно.
asmars вне форума Ответить с цитированием
Старый 07.06.2012, 23:40   #3
Ромашка68
Пользователь
 
Регистрация: 04.05.2012
Сообщений: 15
По умолчанию

нет. Не то
Ромашка68 вне форума Ответить с цитированием
Старый 07.06.2012, 23:57   #4
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

а что не то?
Спеши медленно.
asmars вне форума Ответить с цитированием
Старый 08.06.2012, 01:01   #5
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

у него компилятор какой то кривой. Ругается на using namespace std; если он правильно команду написал. А программа верна. rand() генерирует случайные числа так что все норм

Проблему опиши. У тебя не компилирует или ответ не тот выдает программа
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.

Последний раз редактировалось ACE Valery; 08.06.2012 в 01:08.
kineziz вне форума Ответить с цитированием
Старый 08.06.2012, 01:07   #6
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Во-первых, в начале программы надо написать srand(time(0)) и соответственно подключить библиотеку Ctime. Во-вторых, надо адекватно описывать проблему, а не "что-то тут не правильно" или "нет. Не то". В противном случае ваши темы будут удаляться как мусор.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 08.06.2012, 08:47   #7
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,327
По умолчанию

Цитата:
Сообщение от Ромашка68 Посмотреть сообщение
Матрицу A(m,n) случайным образом заполнить разными целыми числами от 1 до m x n. Код Borland C++ 3.11

Код:
#include <iostream.h>
#include <math.h>
#include <STDLIB.H>
main()
{
    int*Arr;
    int M, k1, N;
    cout«"Razmer matrici:\nM=";
    cin»M;
    cout«"\nN=";
    cin»N;
    k1=M*N;
    Arr=new int[k1];
    cin»M;
    cin»N;
    int i, a;
    for(int i = 0; i < N; i++) {
        for(int a = 0; a < M; a++) {
            Z = rand();
            if((Z < M * N) && Z > 1);
                matrix[ i ][ a ] = Z;
        }
    }

    return 0;
}
Цитата:
int*Arr;
Вам нужен двумерный массив, а не одномерный. К примеру, здесь: http://www.rsdn.ru/forum/cpp/3264391.flat.aspx

Цитата:
cin»M;
cout«"\nN=";
cin»N;
k1=M*N;
Arr=new int[k1];
cin»M;
cin»N;
Зачем вы 2 раза вводите размер матрицы?

Цитата:
Z = rand();
В задании же сказано, что числа генерируются из диапазона [1; MxN]. Вот здесь пример посмотрите: http://www.cplusplus.com/reference/c.../cstdlib/rand/ И обратите внимание, что перед вызовом rand(); нужно вызывать: srand ( time(NULL) ); и не забыть подключить: #include <ctime>. Если числа генерируются из диапазона [1; MxN], то вам нужно писать:
Код:
Z =rand() % (M*N) + 1;
Цитата:
matrix[ i ][ a ] = Z;
Что это? Откуда вы взяли matrix?

Цитата:
if((Z < M * N) && Z > 1);
matrix[ i ][ a ] = Z;
То есть, вы некоторые элементы матрицы хотите вообще без инициализации оставить?
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модификация рандома RayGGG Общие вопросы C/C++ 2 17.02.2011 03:43
Решение в C++ semenpetr Фриланс 13 07.04.2010 09:09
Составление билетов(поправка рандома) Jodu Паскаль, Turbo Pascal, PascalABC.NET 23 09.04.2008 22:48