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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2011, 19:06   #1
Vetaluy
 
Регистрация: 01.05.2011
Сообщений: 4
Вопрос Поменять МестамиС++

Доброго время суток! Помогите задачу закочнть,вообщем нужно: В матрице определить максимальный среди положительных,минимальный среди отрицательных и поменять их местами.
Минимальные и положительные найти получилось, не соображу как поменять их местами:
Цитата:
#include<stdio.h>
#include<vcl.h>
#include<conio.h>
#include<stdlib.h>
#define n 4
int main()
{
int a[n][n];
int i,j;
int min,max,pp;
clrscr();
randomize();
printf("Randomnaya matrica:\n\n");
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
{a[i][j]=rand()%100-50;
printf(" %2i",a[i][j]);
}



printf("\n\n");
}
min=a[0][0];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if((a[i][j]<min))
{min=a[i][j];
}
printf("Minimalni sredi otricatelnih=%i\n\n",min);


max=a[0][0];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if((a[i][j]>max))
{max=a[i][j];
}
printf("Maksimalni sredi polozhitelnih=%i\n\n",max);


getch();
}
Заранее благодарю
Vetaluy вне форума Ответить с цитированием
Старый 01.05.2011, 19:09   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

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

То есть надо написать: swap(a, b);
Вадим Мошев вне форума Ответить с цитированием
Старый 01.05.2011, 19:43   #3
Vetaluy
 
Регистрация: 01.05.2011
Сообщений: 4
По умолчанию

Спасибо, но все же как правильно описать swap в данной задаче.
Vetaluy вне форума Ответить с цитированием
Старый 01.05.2011, 20:49   #4
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Сохраняйте индексы мах и min элемента, т.е. imax, jmax, imin, jmax, тогда swap(a[imax, jmax], a[imin, jmin] );
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 01.05.2011 в 20:54.
Sweta вне форума Ответить с цитированием
Старый 01.05.2011, 22:09   #5
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Ну, функция swap вообще-то, говорят, встроена, но если уж на то пошло, то вам реализация этой функции:
Код:
Swap(int &a, &b)
{
int t;

t = a;
a = b;
b = t;


};
Вадим Мошев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поменять название светлана26 Помощь студентам 12 02.10.2017 18:04
Поменять на for, как? BackSlash Помощь студентам 3 10.02.2011 16:00
Поменять фон блокировки Che Guevara Свободное общение 0 06.09.2010 13:54
поменять местами научите Паскаль, Turbo Pascal, PascalABC.NET 13 08.01.2009 13:43
ПОменять значения местами qip2005 Паскаль, Turbo Pascal, PascalABC.NET 6 24.12.2008 23:38