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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2012, 16:36   #1
Andruxa-94
Новичок
Джуниор
 
Регистрация: 26.03.2012
Сообщений: 1
По умолчанию Программа с++ Двумерные массивы

С клавиатуры вводится матрица чисел P[5,5] Найти максимальнный элемент главной диагонали Поменять местами элементы строки и столбца , на пересечение которых находится максимальный элемент.

не втыкну што дальше делать кто сможет исправьте

Код:
#include<iostream.h>
#include<conio.h>
#include<math.h>


int const n=3,m=4;

void inputArray(int** ar, int n, int m)
{
 cout<<"Vvedite matricu"<<endl;
 for(int i=0; i<n; i++)
 {
  for(int j=0; j<m; j++)
   cin>>ar[i][j];
 }
}

int maxDiag(int** ar, int n, int m)
{
 int max;
 if(n>m) n=m;
 max=ar[0][0];
 for(int i=0; i<n; i++)
 {
  if(ar[i][i]>max)
  {
   max=ar[i][i];
  }
 }
 return max;
}

int main()
{
 int A[n][m],B[n][n],C[m][m];
 int maxA,maxB,maxC;
 int i,j;

 inputArray((int**)A,n,m);
 maxA = maxDiag((int**)A,n,m);
 cout<<"maxA="<<maxA<<endl;
 inputArray((int**)B,n,m);

 maxB = maxDiag((int**)B,n,n);
 cout<<"maxB="<<maxB<<endl;

 inputArray((int**)C,m,m);
 maxC= maxDiag((int**)C,m,m);
 cout<<"maxC="<<maxC<<endl;
 int getchar ();
}

Последний раз редактировалось ACE Valery; 26.03.2012 в 18:57.
Andruxa-94 вне форума Ответить с цитированием
Старый 26.03.2012, 16:51   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Во-первых, используйте при оформлении кода тег CODE.
Во-вторых, матрица по определению квадратная (у неквадратной вовсе нет главной диагонали), а константу лучше уж засунуть в тело main.
В-третьих, в функции maxDiag возвращайте номер элемента:
Код:
int maxDiag(int** ar, int n)
{
int max;
int nmax = 0;
max=ar[0][0];
for(int i=0; i<n; i++)
 {
 if(ar[i][i]>max)
  {
  max=ar[i][i];
  nmax = i;
  }
 }
return nmax;
}
В-четвертых, меняйте местами элементы нужной строки и столбца:
Код:
void Change(int** arr, int N, int pos)
 {
 for (int i = 0; i < N; i++)
  swap(arr[i][pos], arr[pos][i]);
  //Ну или более длинно:
  //{
  //int temp = arr[i][pos];
  //arr[i][pos] = arr[pos][i];
  //arr[pos][i] = temp;
  //}
 }
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
Двумерные массивы 1Dima Помощь студентам 2 29.05.2011 13:57
Двумерные массивы Etete Помощь студентам 6 11.01.2011 21:59
Двумерные массивы Annette Помощь студентам 0 25.04.2010 17:15