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

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

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

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

14.01.2011, 21:52. Просмотров 439. Ответов 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++ Найти наибольший элемент главной диагонали матpицы
C++ Найти сумму в главной диагонали в двумерном массиве
C++ Как найти сумму главной диагонали?
Найти количество элементов главной диагонали c++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 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++
 Аватар для valeriikozlov
4661 / 2487 / 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
 Аватар для MILAN
883 / 777 / 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++
 Аватар для valeriikozlov
4661 / 2487 / 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++
 Аватар для valeriikozlov
4661 / 2487 / 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++ Найти количество элементов главной диагонали a[6][6]
C++ Найти произведение элементов, расположенных на главной диагонали.
Найти произведение элементов главной диагонали C++
Найти минимальный элемент на главной диагонали C++
C++ Найти сумму каждой диагонали матрицы выше главной диагонали

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

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

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