Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
#1

Найти номера на главной диагонали - C++

14.01.2011, 21:52. Просмотров 454. Ответов 11
Метки нет (Все метки)

Найти номера всех максимальных элементов на главной диагонали квадратной матрицы.

Вот что вышло...только никак не работает верно...я уже не занаю что не так..((

Добавлено через 25 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
const n=4;
 
 
 void  MyIn ( int M[][n])
{ int i , j , x , y  ;
  for(i=0 , y=wherey()+1 ; i<n ; i++ , y++ )
   for (j=0 , x=10 ; j<n ; j++ , x+=5 )
     { gotoxy(x,y) ;
       cin>>M[i][j] ;
 
 }
}
 
 
   void MyMax( int M[][n] )
{
int Mx=M[0][0];
for ( int i = 0; i < n; i++ )
 if ( M[i][i]>Mx)
 {Mx=M[i][n-1-i];
 cout<<i<< "  " ;
   }
}
 
 
 
 
int main()
{
 
int A[n][n];
 
 
  cout<<endl;
    cout<<endl;
    MyIn( A) ;
     
  cout<<endl;
    cout<<endl;
   cout<<"      ";
   MyMax( A ) ;
 
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2011, 21:52     Найти номера на главной диагонали
Посмотрите здесь:
C++ Найти сумму каждой диагонали матрицы выше главной диагонали
C++ Найти произведение максимального элемента главной диагонали на минимальный элемент побочной диагонали
C++ Найти максимальный элемент главной диагонали матрицы и множитель положительных элементов выбраной диагонали
C++ Динамически распределение памяти. Матрицы. Найти максимальный ниже побочной диагонали, и минимальный главной диагонали
C++ все нулевые элементы размещены ниже главной диагонали на нечетных строках и выше главной диагонали - на четных
Вывести на экран значения тех эле-ментов, лежащих выше главной диагонали, которые больше всех элементов, лежащих ниже главной диагонали C++
Верно ли, что среднее арифметическое элементов выше главной диагонали больше среднего арифметического элементов ниже главной диагонали C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.01.2011, 21:59     Найти номера на главной диагонали #2
C++
1
2
3
4
5
6
7
8
   void MyMax( int M[][n] )
{
int Mx=M[0][0];
for ( int i = 1; i < n; i++ )
 if ( M[i][i]>Mx)
 {Mx=M[i][n-1-i];// эту строку замените так: {Mx=M[i][i];
    }cout<<Mx<<endl;
}
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.01.2011, 22:09  [ТС]     Найти номера на главной диагонали #3
а ничего не меняется...номера все равно не те выводит..нам номера нужны.

Добавлено через 2 минуты
особенно если номеров несколько...они у меня как один выводятся...
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.01.2011, 22:09     Найти номера на главной диагонали #4
Цитата Сообщение от barlog Посмотреть сообщение
Найти номера всех максимальных элементов на главной диагонали квадратной матрицы.
Тогда уточняю: максимальных элементов в главной диагонали может быть от 1 до n. И нужно вывести номера строк в которых эти элементы расположены? Так?
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.01.2011, 22:15  [ТС]     Найти номера на главной диагонали #5
ну да.матрица же квадратная на главной диагонали номер строки=номеру столбца.а так да...номера строк максимальных элементов на главной диагонали...допустим что у нас 9 максимальная..и на главной диагонали встречатся 3 раза...вот и надо вывести номера где находиться 9.
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.01.2011, 22:19     Найти номера на главной диагонали #6
Если правильно понял задание
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
    srand(static_cast<int>(time(NULL)));
    const int size=5;
    int mat[size][size];
    int max;
    cout<<"Matrix"<<endl;
     for(int i=0; i<size; i++)
     {
         for(int j=0; j<size; j++)
          {
              mat[i][j]=rand()%9;
              cout<<mat[i][j]<<"  ";
          }
         cout<<endl;
     }
     max=mat[0][0];
     for(int i=0; i<size; i++)
     {
         for(int j=0; j<size; j++)
          {
              if(i==j && mat[i][j]>max)
              {
                  max=mat[i][j];
              }
 
          }
     }
     cout<<"Result"<<endl;
     for(int i=0; i<size; i++)
     {
         for(int j=0; j<size; j++)
          {
              if(i==j && mat[i][j]==max)
              {
                  cout<<"["<<i+1<<"]["<<j+1<<"]"<<endl;
              }
          }
     }
  system("pause");
  return 0;
 
}
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.01.2011, 22:19     Найти номера на главной диагонали #7
Проверяйте:
C++
1
2
3
4
5
6
7
8
9
10
11
   void MyMax( int M[][n] )
{
int Mx=M[0][0];
for ( int i = 1; i < n; i++ )
 if ( M[i][i]>Mx)
 {Mx=M[i][i];
    }
for ( int i = 0; i < n; i++)
   if(Mx==M[i][i])
cout<<i<<endl;
}
Выводим номера строк.
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.01.2011, 22:24  [ТС]     Найти номера на главной диагонали #8
если честно я не очень понимаю зачем нам это
C++
1
2
for ( int i = 0; i < n; i++)
   if(Mx==M[i][i])
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.01.2011, 22:28     Найти номера на главной диагонали #9
barlog,
Цитата Сообщение от barlog Посмотреть сообщение
.допустим что у нас 9 максимальная..и на главной диагонали встречатся 3 раза
Вот эта часть кода это и делает:
C++
1
2
for ( int i = 0; i < n; i++)
   if(Mx==M[i][i])
// если очередной элемент главной диагонали равен максимальному значению, то...
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
14.01.2011, 22:41     Найти номера на главной диагонали #10
с ответом опоздал, но делал честно))
поэтому выложу ..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main()
{
    const int N = 4;
    int maxel;
    
    int mas[N][N] = {1,2,3,4,5,16,7,8,9,10,11,12,13,14,15,16};
 
    maxel = mas[0][0];
    for (int i = 0; i<N; i++)
    {
        if(maxel < mas[i][i])
        {
            maxel = mas[i][i];
        }
    }
 
    for(int i=0; i<N; i++)
    {
        if(maxel == mas[i][i])
        {cout << "Nomer stroki: " << i+1 << endl;}
    }
    system("pause");
}
критика будет? буду благодарен, если найдете недочеты и ошибки ..)
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.01.2011, 22:58  [ТС]     Найти номера на главной диагонали #11
cпасибо всем!)
только обьясните почему
C++
1
cout<<i<<endl;
пишут после второго for, а не в обоих циклах?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2011, 23:02     Найти номера на главной диагонали
Еще ссылки по теме:
C++ Найти min значение главной диагонали и max значение побочной диагонали матрицы
C++ Найти произведение элементов главной диагонали и сумму элементов побочной диагонали
Определить: сумма элементов выше главной диагонали меньше суммы элементов ниже главной диагонали? C++
C++ В строках матрицы с отрицательным элементом на главной диагонали найти наибольший из всех элементов (найти ошибку в коде)
C++ Найти все такие числа k, что k-я строка совпадает с k-м столбцом. Найти наибольший элемент главной диагонали

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
14.01.2011, 23:02     Найти номера на главной диагонали #12
1ый находит максимальное значение, если добавить тут то он будет выодить каждый раз когда условие срабатывает..
2ой выводит номера строк с этими значениями
Yandex
Объявления
14.01.2011, 23:02     Найти номера на главной диагонали
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru