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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2020, 19:58   #1
nij20
Новичок
Джуниор
 
Регистрация: 22.01.2020
Сообщений: 1
По умолчанию Не могу понять как поменять местами элеметы двух масивов

Заменить минимальный элемент массива А (5х8) максимальным элементом массива В (7х6), а минимум массива В – максимальным элементом массива А. Массивы, в которых минимальное или максимальное значение встречается неоднократно, считать некорректными.

Код:
#include <stdio.h>

void swap(int *a, int *b)
{
    int t;

    t = *a, *a = *b, *b = t;
}

int main()
{

	int a[5][8]=
	{
	{9,2,3,4,5,6,7,8},
	{2,3,4,5,6,7,8,9},
	{3,4,5,6,7,8,9,10},
	{4,5,6,7,8,9,76,11},
	{5,6,7,8,9,10,2,12}
	};

	for(int i=0;i<5;i++)
	{
	for(int j=0;j<8;j++)
		printf("%d\t",a[i][j]);
	printf("\n");
	}
	printf("\n");
	int b[7][6]=
	{
	{1,2,3,4,5,6},
	{2,3,4,5,6,7},
	{3,4,5,6,7,8},
	{4,5,6,7,8,9},
	{5,6,7,8,9,10},
	{6,7,8,9,56,11},
	{7,8,9,43,2,7}
	};

	for(int i=0;i<7;i++)
	{
	for(int j=0;j<6;j++)
		printf("%d\t",b[i][j]);
	printf("\n");
	}
	printf("\n");

	int max=a[0][0],imax=0,jmax=0;
	for(int i=0;i<5;i++)
	{
	for(int j=0;j<8;j++)
	   {
		if(max<a[i][j])
	      {
            max=a[i][j];
            imax=i;
            jmax=j;

          }
       }
    }
     printf("%d\t",max);
	printf("\n");

	int min=b[0][0],imin=0,jmin=0;
	for(int i=0;i<7;i++)
	{
	for(int j=0;j<6;j++)
	{
		if(min>b[i][j])
		{
			min=b[i][j];
			imin=i;
			jmin=j;
		}

	}
    }
	printf("%d\t\n",min);
	printf("=================================================\n");

	swap(imin, imax);
	swap(jmin, jmax);


	for(int i=0;i<5;i++)
	{
	for(int j=0;j<8;j++)
		printf("%d\t",a[i][j]);
	printf("\n");
	}
	printf("\n");

	for(int i=0;i<7;i++)
	{
	for(int j=0;j<6;j++)
		printf("%d\t",b[i][j]);
	printf("\n");
	}
	printf("\n");

	return 0;
}
nij20 вне форума Ответить с цитированием
Старый 22.01.2020, 21:33   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Как по условию, то А некорректен, у него 2 (min) встречается не раз. А заменить - запросто: просканировать оба массива, максимума запомнить только значение, а минимума - и индексы. И по этим индексам впихнуть Максимов из другого.
digitalis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять как поменять размер Rebar'a. Maxim_St Win Api 1 17.12.2017 15:24
помогите! после того как нашел min и max не могу их местами поменять! arty444 Паскаль, Turbo Pascal, PascalABC.NET 7 03.11.2016 23:27
Паскаль: Помогите понять основу для написания простейшей программы. Не могу понять суть. romanya Паскаль, Turbo Pascal, PascalABC.NET 2 18.03.2016 20:35
Не могу понять работу двух модификаторах типов Tricko Общие вопросы C/C++ 19 08.07.2011 18:54
Не могу разобраться с сравнением 2-х двумерных масивов на совпадения текста tj_pablo Общие вопросы C/C++ 0 11.03.2009 22:21