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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2011, 21:22   #1
Степан sapral
 
Регистрация: 11.01.2011
Сообщений: 7
Вопрос Массивы

Задана прямоугольная матрица А целых чисел размером n * m элементов. Получить из нее матрицу путем вычеркивания строки и колонки на пересечении которых находится минимальный элемент матрицы А.

Вот что я написал:
Код:
#include <math.h>
#define cl clrscr()
#define ge getch()
#define re return 0
#include <stdlib.h>
main(){cl;randomize();
const int n=3,m=3;
long int А[n][m]={7,8,9,1,2,3,4,5,6},B[n-1][m-1];

for(int i=0;i<n;i++){
 for(int j=0;j<m;j++)
 printf("%i ",А[i][j]);printf("\n");}
 long int min=А[0][0],minirjad=0,ministowp=0;
printf("\n\n");

/*Ищем координаты минимального элемента.*/
 for(i=0;i<n;i++)
 for(int j=0;j<m;j++)
 if(А[i][j]<min){min=А[i][j];minirjad=i;ministowp=j;}
 printf("%li   %li   %li\n\n\n",min,minirjad,ministowp);
/*А тут прошу помощи. Не знаю как сформировать элементы матрицы В.*/
  for(i=0;i<n;i++)
  if(i==minirjad)continue;
  else{
   for(int j=0;j<m;j++)
    if(j==ministowp)continue;
    else continue;

/*Выводим матрицу В*/
  for(i=0;i<n-1;i++){
   for(int j=0;j<m-1;j++)
    printf("%li ",В[i][j]);printf("\n");}

ge;re;}
Please, помогите.

Последний раз редактировалось ACE Valery; 18.03.2011 в 00:04.
Степан sapral вне форума Ответить с цитированием
Старый 16.03.2011, 01:30   #2
Степан sapral
 
Регистрация: 11.01.2011
Сообщений: 7
По умолчанию

Спасиба, всем кто зашол посмотреть. Я уж сам ришыл эту задачку
Степан sapral вне форума Ответить с цитированием
Старый 16.03.2011, 01:34   #3
Степан sapral
 
Регистрация: 11.01.2011
Сообщений: 7
По умолчанию

Вот решениэ этой задачи:
Код:
for(i=0;i<n;i++)
   for(int j=0;j<(m-1);j++)
     if(A[i][j]==0){A[i][j]=A[i][j+1];A[i][j+1]=0;}
 for(int j=0;j<m;j++)
   for(i=0;i<(n-1);i++)
     if(A[i][j]==0){A[i][j]=A[i+1][j];A[i+1][j]=0;}

 for(i=0;i<(n-1);i++)
   for(j=0;j<(m-1);j++)
   B[i][j]=A[i][j];
//Нада сначала отсортировать матрицу А, а потом переписать ближниэ елементи в В

Последний раз редактировалось ACE Valery; 18.03.2011 в 00:04.
Степан sapral вне форума Ответить с цитированием
Старый 17.03.2011, 23:19   #4
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

поверьте, это не решение, получится другая матрица, хоть и с теми же элементами
в принципе можно запомнить координаты минимального элемента (i,j) и потом в ответ скопировать все, минуя строку i и столбец j
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
Массивы! Sugarcoocking man Фриланс 2 06.06.2010 17:03
С++, Массивы, динамические массивы. -Sunshine- Помощь студентам 1 19.04.2010 02:17
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
массивы -ushёl- Помощь студентам 6 01.03.2009 17:49