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

Составьте программу обмена местами максимального и минимального элементов на побочной диагонали матрицы B[n][n]. Помогите найти ошибку. - C++

Восстановить пароль Регистрация
 
SmartTrac
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 14
10.04.2010, 18:48     Составьте программу обмена местами максимального и минимального элементов на побочной диагонали матрицы B[n][n]. Помогите найти ошибку. #1
Составьте программу обмена местами максимального и минимального элементов на
побочной диагонали матрицы B[n][n].
Помогите найти ошибку вроде всё чётко но не робит(((
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
#include <iostream>
#include <conio.h>
#define n 5
using namespace std;
int main()
{    int a[n][n],indexi,indexj,indexi1,indexj1;
 
//заполнение и вывод массива
     for (int i=0; i<n; i++){
        for (int j=0; j<n; j++){
            a[i][j]=rand()%10;
            cout<<a[i][j]<<"  ";}
        cout<<endl; }
       cout<<endl;
       int max=a[0][n-1];
       int min=a[0][n-1];
     // поиск максимального и минимального на побочной диагонали
 
        for(i=0;i<n;i++){
            for(j=0;j<n;j++)
                if (j==n-i-1)
                { if (a[i][j]>max) {
                    max=a[i][j];
                     indexi=i;
                     indexj=j;}
                    if (a[i][j]<min) {
                      indexi1=i;
                     indexj1=j;
                     min=a[i][j];}
                }
        }
        //меняю местами макс и мин местами
       int c=a[indexi][indexj];
       a[indexi][indexj]=a[indexi1][indexj1];
        a[indexi1][indexj1]=c;
       for (int i=0; i<n; i++){
        for (int j=0; j<n; j++){
                cout<<a[i][j]<<"  ";}
        cout<<endl; }
        getch();
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2010, 18:48     Составьте программу обмена местами максимального и минимального элементов на побочной диагонали матрицы B[n][n]. Помогите найти ошибку.
Посмотрите здесь:

C++ Составить программу обмена местами максимального и минимального элементов главной диогонали матрицы 4x4.
C++ Найти произведение элементов побочной диагонали матрицы Х(6,6).
C++ найти произведение отрицательных элементов на побочной диагонали матрицы
Найти минимальный из элементов ниже главной и выше побочной диагонали и поменять его местами с первым элементом матрицы C++
Нахождение максимального элемента среди элементов, лежащих выше побочной диагонали матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorona
Peace 2 all shining faces
 Аватар для Vorona
660 / 522 / 44
Регистрация: 05.03.2010
Сообщений: 1,256
10.04.2010, 18:57     Составьте программу обмена местами максимального и минимального элементов на побочной диагонали матрицы B[n][n]. Помогите найти ошибку. #2
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
49
50
51
52
#include <iostream.h>
#include <conio.h>
#include <cstdlib>
#define n 5
 
using namespace std;
 
int main(){
    int a[n][n], indexi, indexj, indexi1, indexj1;
    int i, j;
 
    for (i = 0; i < n; i++){
        for (j = 0; j < n; j++){
            a[i][j] = rand() % 10;
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    cout << endl;
 
    int max = a[0][n-1];
    int min = a[0][n-1];
 
    for(i = 0; i < n; i++){
        for(j = 0; j < n; j++)
            if (j == n - i - 1){
                if (a[i][j] > max){
                    max = a[i][j];
                    indexi = i;
                    indexj = j;
                }
                if (a[i][j] < min){
                    indexi1 = i;
                    indexj1 = j;
                    min = a[i][j];
                }
            }
    }
 
    int c = a[indexi][indexj];
    a[indexi][indexj] = a[indexi1][indexj1];
    a[indexi1][indexj1] = c;
 
    for (i = 0; i < n; i++){
        for (j = 0; j < n; j++)
            cout << a[i][j]<<" ";
        cout << endl;
    }
 
    getch();
    return 0;
}
kukuruku310
197 / 184 / 6
Регистрация: 14.02.2010
Сообщений: 535
10.04.2010, 19:05     Составьте программу обмена местами максимального и минимального элементов на побочной диагонали матрицы B[n][n]. Помогите найти ошибку. #3
я не знаю, что такое "побочная диагональ", но в строчке
Цитата Сообщение от SmartTrac Посмотреть сообщение
for(j=0;j<n;j++)
так и напрашивается начало блока ({}), хотя сама цель этого for неясна
SmartTrac
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 14
10.04.2010, 19:07  [ТС]     Составьте программу обмена местами максимального и минимального элементов на побочной диагонали матрицы B[n][n]. Помогите найти ошибку. #4
спс огромное
Vorona
Peace 2 all shining faces
 Аватар для Vorona
660 / 522 / 44
Регистрация: 05.03.2010
Сообщений: 1,256
10.04.2010, 19:11     Составьте программу обмена местами максимального и минимального элементов на побочной диагонали матрицы B[n][n]. Помогите найти ошибку. #5
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1 главная диагональ из единиц

0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0 побочная
kukuruku310
197 / 184 / 6
Регистрация: 14.02.2010
Сообщений: 535
10.04.2010, 19:39     Составьте программу обмена местами максимального и минимального элементов на побочной диагонали матрицы B[n][n]. Помогите найти ошибку. #6
в смысле побочная-перепендикулярная той, что только из единиц? а если такой диагонали нет? в смысле основной?

Добавлено через 18 минут
разобрался, что такое "побочная", но все равно конструкция
C++
1
2
3
for(i=0;i<n;i++){
  for(j=0;j<n;j++)
    if (j==n-i-1)
не достаточно ясна
разве
C++
1
2
3
for(i=0;i<n;i++){
//  for(j=0;j<n;j++)
    j = n-i-1;
не то же самое, учитывая, что ни "n", ни "i", ни тем более "1" нигде в этой ветке "for(i..." не меняется
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2010, 19:54     Составьте программу обмена местами максимального и минимального элементов на побочной диагонали матрицы B[n][n]. Помогите найти ошибку.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Vorona
Peace 2 all shining faces
 Аватар для Vorona
660 / 522 / 44
Регистрация: 05.03.2010
Сообщений: 1,256
10.04.2010, 19:54     Составьте программу обмена местами максимального и минимального элементов на побочной диагонали матрицы B[n][n]. Помогите найти ошибку. #7
то же самое
в первом случае мы проверяем всю строку на наличие равенства номера элемента с формулой его нахождения, а во втором просто присваиваем ему это значение
Yandex
Объявления
10.04.2010, 19:54     Составьте программу обмена местами максимального и минимального элементов на побочной диагонали матрицы B[n][n]. Помогите найти ошибку.
Ответ Создать тему
Опции темы

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