Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Динамический массив!


Автор: sikha 22.6.2008, 19:26
Народ такая тема создаю я динамический массив но мне нужно чтоб он заполнялся 100 рандомных элементов помоги те плиз!
 

Код

#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <iostream.h>
#include <stdlib.h>

int main()

{
int** array;
int num = 0;
int i, j;

clrscr();
printf("Razmernost massiva: ",num);
scanf("%d",&num);

array = (int**)malloc(num*sizeof(int));
for (i=0;i<num;i++)
{
 *(array + i) = (int*)malloc(num*sizeof(int));
 for (j=0;j<num;j++)
 {
  printf("[%d][%d]=",i,j);
  scanf("%d",&*(*(array + i) + j));
  }
 printf("\n");
}

for (i=0;i<num;i++)
{
 for (j=0;j<num;j++)
 {
  printf("%4d",*(*(array + i) + j));
  }
printf("\n");
}

free(array);
for(i = 0; i < num; i++)
free(*(array + i));
getch();
return 0;

}



что и как точно надо изменить чтоб он рандомно заполнялся и выводился на экран!!!!

Автор: andrew_121 22.6.2008, 19:36
Код

#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <stdlib.h>

int main() {
   int* array;
   int num = 0;
   int i, j;
   
   clrscr();
   srand( time(NULL) );

   printf("Razmernost massiva: ",num);
   scanf("%d",&num);

   array = new int[num];

   for (i=0;i<num;i++) {
      array[i] = rand(); // Рандомно заполняется...
   }

   for (i=0;i<num;i++) {
      printf("%4d",array[i]);
   }

   printf("\n");
   delete[] array;
   getch();

   return 0;
}


Автор: sikha 22.6.2008, 19:57
хм  а я щас вот как исправил  вроде норм получилось!!!!  


Код

#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <iostream.h>
#include <stdlib.h>

int main()

{
int** array;
int num = 0;
int i, j;

clrscr();
printf("Vvedite razmernost massiva: ",num);
scanf("%d",&num);

array = (int**)malloc(num*sizeof(int));
for (i=0;i<num;i++)
{
for(i=0; i<num; i++)
printf("%d\t, rand() % 100);

getch();
return 0;
}
}




тока теперь думаю как правильно его отсортировать методом  вставки!!!)))))

Добавлено через 12 минут и 8 секунд
Тока я что то не пойму у меня походу дела не динамический массив получился!  или динамический!!

Автор: jonie 22.6.2008, 22:10
sikha у тебя создан (и неинициализирован) массив int* размером в num. кроме того, пропущена закрывающая кавычка.
см. как сделано у andrew_121

и почисти клавиатуру, у тебя shift,1 и 0 западают

Автор: andrew_121 22.6.2008, 22:52
sikha - Чёт я не вкурил.... А зачем тебе массив типа int** ??? Смысл то в чем ?

Автор: Lazin 23.6.2008, 10:49
Зачем-же так многословно smile 

Код

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
    size_t num = 0;
    std::cin >> num;
    int* array = new int[num];
    srand( (unsigned)time( 0 ) );
    std::generate(array, array+num, &rand);
    std::copy(array, array+num, std::ostream_iterator<int>(std::cout, " ") ); 
    delete[] array;
    system("pause");
}

Автор: bsa 23.6.2008, 11:25
Lazin, зачем так ненадежно?
Код
#include <algorithm>
#include <iostream>
#include <iterator>
#include <cstdlib>
#include <ctime>
#include <vector>

int main()
{
    std::size_t num = 0;
    std::vector<int> array;

    std::srand( (unsigned)time( 0 ) );
    std::cin >> num;
    std::generate_n(std::back_inserter(array), num, std::rand);
    std::copy(array.begin(), array.end(), std::ostream_iterator<int>(std::cout, " ") ); 
    return 0;
}

Автор: vinter 23.6.2008, 11:58
bsa, так эффективней  smile 
Код

int main()
{
    std::size_t num = 0;
    std::vector<int> array;

    std::srand( (unsigned)time( 0 ) );
    std::cin >> num;
    array.reserve(num);
    std::generate_n(std::back_inserter(array), num, std::rand);
    std::copy(array.begin(), array.end(), std::ostream_iterator<int>(std::cout, " ") ); 
    return 0;

}

Автор: Ln78 24.6.2008, 16:31
 smile интересное соревнование, хотя, возможно, топикстартеру требовалось самостоятельное (без использования готовых классов) решение задачи. ИМХО, в этом соревновании безусловный лидер jonie:
Цитата(jonie @  22.6.2008,  23:10 Найти цитируемый пост)
и почисти клавиатуру, у тебя shift,1 и 0 западают 

Холмс, но как Вы догадались?   smile 

Автор: breaking 25.6.2008, 22:09
Ребята, а как инициализировать генератор случайных чисел? Копилятор MS VC++ 6.0. Строчка:
srand ( time(NULL) ) вызывает ERROR - дескать time неопределённый идентификатор. А то получаются при каждом запуске одни и те же значения :(

Автор: bsa 25.6.2008, 22:12
breaking, добавь в программу #include <ctime> а перед time поставь std::
Код
#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
#include <cstdlib>
#include <ctime>

int main()
{
    std::size_t num = 0;
    std::vector<int> array;
    std::srand( (unsigned)std::time( 0 ) );
    std::cin >> num;
    array.reserve(num);
    std::generate_n(std::back_inserter(array), num, std::rand);
    std::copy(array.begin(), array.end(), std::ostream_iterator<int>(std::cout, " ") ); 
    return 0;
}

Автор: sikha 20.12.2008, 16:42
Все получилось всем большое спасибо за помощь!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)