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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2011, 22:37   #1
KarP93
Новичок
Джуниор
 
Регистрация: 24.03.2011
Сообщений: 1
По умолчанию Создать двумерный массив

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

#include "stdafx.h"
#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
#include <time.h>

int *a; // массив, размерностью m\n
int i, j; // переменные строк и столбцов массива
void mass(int m, int n);
void print_mass(int m, int n);

int _tmain(int argc, _TCHAR* argv[])
{
unsigned int m, n;

printf("Enter the dimension of the matrix: \n");
printf("n = "); scanf ("%u", &m);
printf("m = "); scanf ("%u", &n);

mass(m, n);
printf("Your array : \n");
print_mass(m, n);

getch();
}

void mass(int m, int n)
{
a = (int*)malloc(m*n*sizeof(int));
srand(time(NULL));
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
a[i ,j] = rand() % 10; // от 0 до 9
}

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

Почему-то в строке выводит одинаковые числа..
KarP93 вне форума Ответить с цитированием
Старый 25.03.2011, 00:07   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Все просто
Код:
void print_mass(int m, int n)
{
  int i, j;
  for(j = 0; j < m; j++)
  {
    for(i = 0; i < n; i++)
    printf("%d ", a[i, j]);
  }
  printf("\n");
}
а на счет рандома попробуй так
Код:
srand((unsigned)time(NULL));
Цитата:
такая запись a[i,j] -это паскаль
Кстати да. Не заметил

Последний раз редактировалось psycho-coder; 25.03.2011 в 00:13.
psycho-coder вне форума Ответить с цитированием
Старый 25.03.2011, 00:10   #3
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

ну раз долго сидишь...

кароче основное исправил..
1)ты матрицу выводишь и заполянешь неправильно, только по строкам.. такая запись a[i,j] -это паскаль . в С это эквивалентно a[i].
2)раз массив двумерный значит int **a; - как бы массив указателей. память для него выделять нужно тоже "по особому".
3) очищение памяти добавил void del_array(int m); если ненадо - убери
4) в 1 процедуре у
тя for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
в другой
for(j = 0; j < m; j++)
for(i = 0; i < n; i++)

...
ну и напоследок, глобальные переменные, особенно счетчики это очень очень плохо, и заголовки надо включать как #include <conio.h> и т.д.

Код:
#include "stdafx.h"
#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
#include <time.h>

int **a; // 
int i, j; // 
void mass(int m, int n);
void print_mass(int m, int n);
void del_array(int m);

int main()
{
unsigned int m, n;

printf("Enter the dimension of the matrix: \n");
printf("n = "); scanf ("%u", &m);
printf("m = "); scanf ("%u", &n);

mass(m, n);
printf("Your array : \n");
print_mass(m, n);

del_array(m);

getch();
return 0;
}

void mass(int m, int n)
{
a = (int**)malloc(m*sizeof(int));
for (i=0; i<m; i++)
a[i]=(int*) malloc(n*sizeof(int));

srand(time(NULL));
for(i = 0; i < m; i++)
for(j = 0; j < n; j++)
a[i][j] = rand() % 10; // îò 0 äî 9
}

void print_mass(int m, int n)
{
	for(i = 0; i < m; i++) {
	for(j = 0; j < n; j++)
	printf("%d ", a[i][j]);

	printf("\n");
	}

}
void del_array(int m) {
for (i=0; i<m; i++)
free(a[i]);

free(a);

}
onewho вне форума Ответить с цитированием
Старый 25.03.2011, 00:12   #4
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
Все просто
Код:
void print_mass(int m, int n)
{
  int i, j;
  for(j = 0; j < m; j++)
  {
    for(i = 0; i < n; i++)
    printf("%d ", a[i, j]);
  }
  printf("\n");
}
а на счет рандома попробуй так
Код:
srand((unsigned)time(NULL));
shame on you
onewho вне форума Ответить с цитированием
Старый 25.03.2011, 00:19   #5
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
shame on you
буржуй_____
psycho-coder вне форума Ответить с цитированием
Старый 25.03.2011, 00:31   #6
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
буржуй_____
* palevo *
onewho вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создать двумерный массив, заполнить случайными числами, сохранить в файл buba Паскаль, Turbo Pascal, PascalABC.NET 7 17.03.2015 20:08
двумерный массив katena88 Общие вопросы C/C++ 3 09.12.2010 15:39
двумерный массив MIKE11IPME Паскаль, Turbo Pascal, PascalABC.NET 0 01.06.2010 22:39
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
создать в файле рандомный двумерный массив loon Помощь студентам 2 25.06.2008 08:32