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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2010, 15:01   #1
MarihuanaP
Пользователь
 
Регистрация: 27.10.2009
Сообщений: 23
По умолчанию Указатели С++

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

Задание: Разместить в динамической памяти ЭВМ матрицу 5х5 случайных целых чисел в диапазоне от -60 до 60. Напечатать ее. Предусмотреть оба варианта работы с матрицей – один указатель на всю матрицу и массив указателей.

Код:
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <iomanip.h>


int i, j, k;
int *aptr,*l, *zag;
int *a[5][5];
int **b;

int main()
{
srand(time(NULL));
cout << "Massiv ykazatelei"<< endl;
for (i=0; i<5; i++)
  { for (j=0; j<5;j++)
  {
a[i][j]= new int[25];
  }
  }
  for (i=0; i<5; i++)
  { for (j=0; j<5;j++)
  {
    k = rand()%121-60;
   *a[i][j]=k;
  }
  }
    for (i=0; i<5; i++)
  { for (j=0; j<5;j++)
  {
   cout<<setw(5)<<*a[i][j];
  }
  cout << endl;
  }
  cout << endl<< endl;


  cout << "Ykazatel na massiv"<< endl;
  b=new int *[5];
    for (i=0; i<5; i++)
  {
   b[i]=new int [5];
  for (j=0; j<5;j++)
  {
  k = rand()%121-60;
   b[i][j]=k;
  }
  }

   for (i=0; i<5; i++)
  { for (j=0; j<5;j++)
  {
   cout<<setw(5)<<b[i][j];
  }
  cout << endl;
  }
  cout << endl<< endl;

  system("PAUSE");
   return 0;
}
Заранее спасибо
MarihuanaP вне форума Ответить с цитированием
Старый 09.02.2010, 17:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я бы второй вариант так сделал:
Код:
{
 int *a;
  a=(int*)malloc(5*5*sizeof(int));
  for(int i=0;i<5;i++){
   for(int k=0;k<5;k++){
	*(a+k*i)=rand();
	cout<<*(a+k*i)<<'\t';
   }
   cout<<'\n';
  }
  cin.get();
	return 0;
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
указатели Артэс Общие вопросы C/C++ 11 07.02.2010 16:47
[C] массивы, указатели, двойные указатели. Iggel Общие вопросы C/C++ 5 05.05.2009 12:39
Указатели!!!!!!!!!!!!!!! focus888 Паскаль, Turbo Pascal, PascalABC.NET 2 01.05.2009 09:13
указатели Armina Общие вопросы C/C++ 4 22.04.2009 20:05
Указатели spirit0k Общие вопросы C/C++ 2 26.03.2009 15:16