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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.01.2009, 18:24   #1
Stager
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 41
По умолчанию Как вывести на экран двумерный массив случайным образом?

Подскажите, пожалуйста, как вывести на экран двумерный массив случайным образом?
Stager вне форума
Старый 07.01.2009, 18:43   #2
Тупой
Форумчанин
 
Аватар для Тупой
 
Регистрация: 26.12.2008
Сообщений: 146
По умолчанию

всмысле: случайным образом?
"Hello, world!" - 17 errors 56 warnings
Тупой вне форума
Старый 07.01.2009, 19:05   #3
Stager
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 41
По умолчанию

Рандомно.
Чтобы элементы массива вводил не я, а он сам случайным образов присваивал каждой ячейке кое-какое число.
Stager вне форума
Старый 07.01.2009, 19:36   #4
Тупой
Форумчанин
 
Аватар для Тупой
 
Регистрация: 26.12.2008
Сообщений: 146
По умолчанию

вам нужен генератор случайных чисел.
подключите сл. библиотеку:
Код:
#include <time.h>
затем генератор нужно запустить
для этого просто введите строчку
Код:
srand( (unsigned)time( NULL ) );
все, теперь генератор начал свою работу.
Можно пользоваться функцией rand(); например:
Код:
a=rand()%3;
присваивает переменной а значение 0, либо 1, либо 2.

на всякий случай, вот примерчик из справки VS2008:
Код:
// crt_rand.c
// This program seeds the random-number generator
// with the time, then exercises the rand function.
//

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void SimpleRandDemo( int n )
{
   // Print n random numbers.
   int i;
   for( i = 0; i < n; i++ )
      printf( "  %6d\n", rand() );
}

void RangedRandDemo( int range_min, int range_max, int n )
{
   // Generate random numbers in the half-closed interval
   // [range_min, range_max). In other words,
   // range_min <= random number < range_max
   int i;
   for ( i = 0; i < n; i++ )
   {
      int u = (double)rand() / (RAND_MAX + 1) * (range_max - range_min)
            + range_min;
      printf( "  %6d\n", u);
   }
}

int main( void )
{
   // Seed the random-number generator with the current time so that
   // the numbers will be different every time we run.
   srand( (unsigned)time( NULL ) );

   SimpleRandDemo( 10 );
   printf("\n");
   RangedRandDemo( -100, 100, 10 );
}
Да, и ещё, на делайте типичную ошибку - многократный запуск генератора, ну тоесть в цикле писать строчку
Код:
srand( (unsigned)time( NULL ) );
не надо.
"Hello, world!" - 17 errors 56 warnings
Тупой вне форума
Старый 07.01.2009, 20:46   #5
Тупой
Форумчанин
 
Аватар для Тупой
 
Регистрация: 26.12.2008
Сообщений: 146
По умолчанию

Ну и от нечего делать, написал функцию, которая выводит массив единиц на фоне массива нулей случайным образом ).

Код:
// rand_obr_mass.cpp: главный файл проекта.

#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <conio.h>
int x,y;

using namespace System;
int poloz(int tek);
void povorot(int napr_new);

int main(array<System::String ^> ^args)
{
    int i,ii,j,n,N;
	int napr_now=0;
	int napr_next;
	srand( (unsigned)time( NULL ) );
	printf("Vvedite kol-vo elementov massiva \n");
	scanf("%d",&n);
	N = n*2;
	
	int **a = new int*[N];
	for(i=0;i<N;i++)
		a[i]=new int[N];
	
	for(i=0;i<N;i++)
		for(j=0;j<N;j++)
			a[i][j]=0;

	a[n][n]=1;
	x = n;
	y = n;
	for(ii=0;ii<n-1;ii++)
	{
		do
		{
			napr_next = poloz(napr_now);
		}
		while(abs(napr_next-napr_now)%2==0);
		povorot(napr_next);
		napr_now = napr_next;
		a[x][y]=1;
	}

	printf("\n");
	for(i=0;i<N;i++)
	{
		for(j=0;j<N;j++)
			printf("%d",a[i][j]);
		printf("\n");
	}

	getch();
    return 0;
	
}

int poloz(int tek)
{
	int sled;
	
	sled=rand()%4;
	return sled;
}

void povorot(int napr_new)
{
	if (napr_new==0)
		x+=1;
	if (napr_new==1)
		y-=1;
	if (napr_new==2)
		x-=1;
	if (napr_new==3)
		y+=1;
}
"Hello, world!" - 17 errors 56 warnings
Тупой вне форума
Старый 07.01.2009, 20:53   #6
Stager
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 41
По умолчанию

Спасибо Большое!
Stager вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести bmp изображение на экран?? lexuss Паскаль, Turbo Pascal, PascalABC.NET 12 09.04.2011 00:02
Машина случайным образом генерирует натуральные числа в промежутке [0, 1, 2, … 100] JustinTI Помощь студентам 4 21.12.2008 14:31
Машина случайным образом генерирует натуральные числа в промежутке [0, 1, 2, … 10] до тех пор, пока не 0 JustinTI Помощь студентам 3 21.12.2008 14:31
Как вывести на экран имена файлов текущего каталога? (С++) Darw1n Помощь студентам 1 13.12.2008 11:10
Как вывести из текстового файла на экран русский текст? Mischa Помощь студентам 8 12.03.2008 06:23