Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

14.01.2011, 21:52. Просмотров 465. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2011, 21:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти номера на главной диагонали (C++):

Найти сумму каждой диагонали матрицы выше главной диагонали - C++
Дана матрица n*m, найти сумму каждой диагонали отдельно, выше главной диагонали. Не могу понять задачу помогите пожалуйста.

Найти произведение максимального элемента главной диагонали на минимальный элемент побочной диагонали - C++
Всем привет! Мастера помогите доделать задание с матрицой. Вот само задание: Найти произведение максимального элемента главной...

Найти максимальный элемент главной диагонали матрицы и множитель положительных элементов выбраной диагонали - C++
Узнать максимальные элемент на главной диагонали и множитель позитивных элементов выбраной диагонали. Рамер матрицы вводить с клавиатуры,...

Динамически распределение памяти. Матрицы. Найти максимальный ниже побочной диагонали, и минимальный главной диагонали - C++
В матрице n-го порядка найти максимальный среди элементов , лежащих ниже побочной диагонали, и минимальный среди элементов , лежащих...

Заменить элементы главной диагонали матрицы нулями и найти максимальный элемент ниже побочной диагонали - C++
Есть пример для решения другой задачи(она находит суму всех элементов каждой строки и выводит результат суммы по возрастанию): #include...

все нулевые элементы размещены ниже главной диагонали на нечетных строках и выше главной диагонали - на четных - C++
все нулевые элементы размещены ниже главной диагонали на нечетных строках и выше главной диагонали - на четных

11
valeriikozlov
Эксперт С++
4674 / 2500 / 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;
}
1
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.01.2011, 22:09  [ТС] #3
а ничего не меняется...номера все равно не те выводит..нам номера нужны.

Добавлено через 2 минуты
особенно если номеров несколько...они у меня как один выводятся...
0
valeriikozlov
Эксперт С++
4674 / 2500 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.01.2011, 22:09 #4
Цитата Сообщение от barlog Посмотреть сообщение
Найти номера всех максимальных элементов на главной диагонали квадратной матрицы.
Тогда уточняю: максимальных элементов в главной диагонали может быть от 1 до n. И нужно вывести номера строк в которых эти элементы расположены? Так?
1
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.01.2011, 22:15  [ТС] #5
ну да.матрица же квадратная на главной диагонали номер строки=номеру столбца.а так да...номера строк максимальных элементов на главной диагонали...допустим что у нас 9 максимальная..и на главной диагонали встречатся 3 раза...вот и надо вывести номера где находиться 9.
0
MILAN
886 / 780 / 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;
 
}
1
valeriikozlov
Эксперт С++
4674 / 2500 / 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;
}
Выводим номера строк.
1
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])
0
valeriikozlov
Эксперт С++
4674 / 2500 / 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])
// если очередной элемент главной диагонали равен максимальному значению, то...
1
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");
}
критика будет? буду благодарен, если найдете недочеты и ошибки ..)
1
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
14.01.2011, 22:58  [ТС] #11
cпасибо всем!)
только обьясните почему
C++
1
cout<<i<<endl;
пишут после второго for, а не в обоих циклах?
0
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
14.01.2011, 23:02 #12
1ый находит максимальное значение, если добавить тут то он будет выодить каждый раз когда условие срабатывает..
2ой выводит номера строк с этими значениями
1
14.01.2011, 23:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2011, 23:02
Привет! Вот еще темы с ответами:

Вывести на экран значения тех эле-ментов, лежащих выше главной диагонали, которые больше всех элементов, лежащих ниже главной диагонали - C++
А кто-нибудь может помочь еще с этим: Дан вещественный массив А. Вывести на экран значения тех эле-ментов, лежащих выше главной...

Верно ли, что среднее арифметическое элементов выше главной диагонали больше среднего арифметического элементов ниже главной диагонали - C++
Дана квадратная матрица натуральных чисел.Определить верно ли утверждение:Cреднее арифметическое элементов выше главной диагонали больше...

Найти min значение главной диагонали и max значение побочной диагонали матрицы - C++
Помогите написать код :gcray: :gcray2: Найти мин значение главной диагонали и макс значение побочной диагонали в матрице 5 на 5....

Найти произведение элементов главной диагонали и сумму элементов побочной диагонали - C++
Не могу разобраться с задачей, помогите пожалуйста: 3. Найти произведение элементов главной диагонали и сумму элементов побочной...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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