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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2010, 21:18   #1
TheZvir
 
Регистрация: 01.10.2009
Сообщений: 6
По умолчанию C++ указатель в динамическом двумерном масие

столкнулся с проблемой, мне надо было зделать в двух вариацыях реализовать поск и замену в масиве с неизвесним на момент компиляции размером по индексу и по указателю

по индексу здела довольно быстро
Код:
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <tchar.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
//------------------------
#pragma argsused

void main()
{
int i,j,k,o=1,m,ob,n,mini=0,minj=0,maxi=0,maxj=0;
int ptx[1][1],ptn[1][1];
float min=(600000),max=(-600000);
printf("\n Input matrix size (m, n)");
scanf("%d %d",&m,&n);
int **a = new int *[n];
for (int i=0; i < n; i++) {
a[i]=new int[m];}
printf("\n Input matrix A ");
   for(i=0;i<m;i++){  printf("\n");
   for(j=0;j<n;j++) {
   cscanf("%d",&a[i][j]);
   }}
   for(i=0;i<m;i++){
   for(j=0;j<n;j++){
   if (min>a[i][j]) {
   min=a[i][j];
   mini=i;
   minj=j;
   }
   else if (max<a[i][j]){
   max=a[i][j];
   maxi=i;
   maxj=j;
   //ptx=&a[i][j];
   }
   }}
   printf("\n Results1 \n");
   for(i=0;i<m;i++){
   for(j=0;j<n;j++)cprintf("%5d",a[i][j]);

 printf("\n");getch();}
 a[mini][minj]=max;
 a[maxi][maxj]=min;

 printf("\n Results \n");
   for(i=0;i<m;i++){
   for(j=0;j<n;j++)cprintf("%5d",a[i][j]);
printf("\n");getch();}
for (i = 0; i < n; i++) {
	delete[] a[i];}
	delete [] a;
getch();
}
он ищет в масиве минимальное и максимальное число , ну и меняет их местами. Как ето зделать с укозателем. Я знаю что ето масив масив и там не всё так просто но я пркапал гугл до 11й страницы и кроме большого количества непонятного кода ненашол. Может ктото показать и расказать как ето зделать , ну или хотябы как зделать чтоб оно имело вид такового. Самому просто стало интересно.
TheZvir вне форума Ответить с цитированием
Старый 25.03.2010, 21:48   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Код:
int **a = new int *[n];
for (int i=0; i < n; i++) {
a[i]=new int[m];}
как раз таки ты сделал прогу с указателями=)
ты создал указатель на указатель(массив указателей, простыми словами двумерный массив)
NiCola999 вне форума Ответить с цитированием
Старый 25.03.2010, 22:23   #3
TheZvir
 
Регистрация: 01.10.2009
Сообщений: 6
По умолчанию

емд а как тогда через индекс ? что-то я совсем заутался

просто я читал что просто так матрицу не зделать , размерность должна быть константой , ну рылся и дома таки нашол в бумажном оплоте знаний про масив масив. я дума что инекс ето если mass[i][j] а указатель ето когда например в одномерном int a [5] {1.2.3.4.5} *Pt и обращение потом к Pt+1 ето a[1] или же 2 как число в масиве

Последний раз редактировалось TheZvir; 25.03.2010 в 22:30.
TheZvir вне форума Ответить с цитированием
Старый 26.03.2010, 00:03   #4
TheZvir
 
Регистрация: 01.10.2009
Сообщений: 6
По умолчанию

а можно перенести мою тему в с++ общие вопросы ? или ето безсмысленной отчаяное действие с моей стороны ?

Последний раз редактировалось TheZvir; 26.03.2010 в 00:13.
TheZvir вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игра на двумерном массиве Serg-Grin Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 19.02.2010 20:51
Переопределение события OnClick в динамическом объекте-компоненте CyberJohn Общие вопросы Delphi 8 06.01.2010 15:56
Random в двумерном массиве. Lazio Помощь студентам 7 01.11.2009 22:53
Mootools.Проблема определения события OnClick элемента списка при его динамическом создании. ilusha JavaScript, Ajax 2 25.02.2009 10:43
Количество элементов в динамическом массиве lytkin Общие вопросы Delphi 8 21.02.2007 14:50