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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2013, 14:20   #1
iymf
 
Регистрация: 05.05.2013
Сообщений: 3
По умолчанию указатели с матрицами(С++)

Помогите переделать задачи,что бы были использованы указатели:
1)матрица 4х4 определить максимальное среди положительных чисел и минимальное среди отрицательных,и поменять их местами
Обычный код:
Код:
#include "stdafx.h"
#include "stdio.h "
#include "stdlib.h"
#include <time.h>
#include "conio.h"
#include "iostream"
#include "iomanip"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{int i,j,k,b,h,m,d,f;
 int a[4][4];
 srand(time(NULL));

 for(i=0;i<4;i++)
 {
	 for(j=0;j<4;j++)
	 {
 		 a[i][j]=-10+rand()%50;
         cout<<a[i][j];
		 cout<<"  ";
	 }
	 cout<<endl;
 }
 
 
 
 int min=a[0][0];
 for(i=0;i<4;i++)
 {
	 for(j=0;j<4;j++){
	 if (min>=a[i][j]){
	 min=a[i][j];
	 k=i;
	 b=j;
	 }}
 }
 cout<<"min="<<min;
 cout<<endl;
 cout<<"raspolowenie min="<<k<<b;
 cout<<endl;
 
 
 int max=a[0][0];
  for(i=0;i<4;i++)
 {
	 for(j=0;j<4;j++){
	 if (max<=a[i][j]){
	 max=a[i][j];
	 h=i;
	 m=j;
	 }}
 }
 cout<<"raspolowenie max="<<h<<m;
 cout<<endl;
 cout<<"max="<<max;
 cout<<endl;


 for(i=0;i<4;i++)
 {
	 for(j=0;j<4;j++)
	 {cout<<a[i][j];
		 a[h][m]=min;
	  a[k][b]=max;
	  cout<<"  ";
	 }
	 cout<<endl;
 }
 
 _getch();
	return 0;
}

2)Матрица 4х4,есле в строке есть хотя бы одна единица, то заменить строку нулями


Код:
Код:
#include "stdafx.h"
#include "stdio.h "
#include "stdlib.h"
#include <time.h>
#include "conio.h"
#include "iostream"
#include "iomanip"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{int i,j,k,b,h,m,d,f;
 int a[4][4];
 srand(time(NULL));

 for(i=0;i<4;i++)
 {
	 for(j=0;j<4;j++)
	 {
 		 a[i][j]=-1+rand()%10;
         cout<<a[i][j];
		 cout<<"  ";
	 }
	 cout<<endl;
 }
 cout<<endl;
 for(i=0;i<4;i++)
 {
	 for(j=0;j<4;j++)
	 { if (a[i][j]==1) 
	    {b=i;
		 for(d=b;d<b+1;d++)
          {
	      for(m=0;m<4;m++)
	       {
	       a[b][m]=0;
	       }
	      }

        }
     }
 }
 for(i=0;i<4;i++)
 {
	 for(j=0;j<4;j++)
	 {
         cout<<a[i][j];
		 cout<<"  ";
	 }
	 cout<<endl;
 }
 _getch();
	return 0;
}

Последний раз редактировалось Stilet; 05.05.2013 в 15:54.
iymf вне форума Ответить с цитированием
Старый 06.05.2013, 18:26   #2
iymf
 
Регистрация: 05.05.2013
Сообщений: 3
По умолчанию

кто-нибудь может помочь,проще говоря ,нужно что бы были задачи с указателями?
iymf вне форума Ответить с цитированием
Старый 06.05.2013, 18:32   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
int i,j,k,b,h,m,d,f;
 int **a=new int*[4];
 for(i=0;i<4;i++) a[i]=new int[4];
 srand(time(NULL));
...
тут твой код
...
 for(i=0;i<4;i++) delete[] a[i]; delete[] a;

return 0;
Вроде ниче не упустил.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.05.2013, 11:11   #4
iymf
 
Регистрация: 05.05.2013
Сообщений: 3
По умолчанию

спасибо за помощь,но мне нужно чтобы указателями были и переменные и использовались в циклах
iymf вне форума Ответить с цитированием
Старый 07.05.2013, 11:42   #5
Bend3r
 
Регистрация: 04.05.2013
Сообщений: 3
По умолчанию

Просто создай еще 1 указатель. И всегда с массива бери адрес. Пример:
Код:
int *p;
int massiv[10];
for(int i = 1; i < 10; i++)
{
p=&mas[i];
*p=mas[i];
mas[i]=mas[i+1];
mas[i+1]=*p
}
Как-то так.
Bend3r вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с матрицами C# bestnicer Помощь студентам 2 22.11.2012 11:02
Работа с матрицами C++ OldUnion Помощь студентам 0 09.11.2012 21:25
операции с матрицами Alexandr000006 Помощь студентам 6 26.07.2011 14:34
Работа с матрицами Vladimir-888 Помощь студентам 2 21.06.2010 06:51
[C] массивы, указатели, двойные указатели. Iggel Общие вопросы C/C++ 5 05.05.2009 12:39