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

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

Войти
Регистрация
Восстановить пароль
 
SmartTrac
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 14
#1

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

10.04.2010, 18:48. Просмотров 611. Ответов 6
Метки нет (Все метки)

Составьте программу обмена местами максимального и минимального элементов на
побочной диагонали матрицы 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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2010, 18:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Составьте программу обмена местами максимального и минимального элементов на побочной диагонали матрицы B[n][n]. Помогите найти ошибку. (C++):

Составить программу обмена местами максимального и минимального элементов главной диогонали матрицы 4x4. - C++
как я понял надо работать только с главной диогональю зарание спасибо!

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

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

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

В квадратной матрице найти сумму минимального и максимального элементов главной диагонали - C++
В квадратной матрице найти сумму минимального и максимального элементов главной диагонали. Добавлено через 3 часа 13 минут Помогите...

Найти индексы максимального и минимального элементов матрицы и произведение этих элементов - C++
При помощи случайных чисел ввести матрицу A(15x5). Записать значения элементов матрицы в файл и сохранить файл. Прочитать из созданного...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
10.04.2010, 18:57 #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;
}
0
kukuruku310
197 / 184 / 7
Регистрация: 14.02.2010
Сообщений: 539
10.04.2010, 19:05 #3
я не знаю, что такое "побочная диагональ", но в строчке
Цитата Сообщение от SmartTrac Посмотреть сообщение
for(j=0;j<n;j++)
так и напрашивается начало блока ({}), хотя сама цель этого for неясна
0
SmartTrac
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 14
10.04.2010, 19:07  [ТС] #4
спс огромное
0
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
10.04.2010, 19:11 #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 побочная
0
kukuruku310
197 / 184 / 7
Регистрация: 14.02.2010
Сообщений: 539
10.04.2010, 19:39 #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..." не меняется
0
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
10.04.2010, 19:54 #7
то же самое
в первом случае мы проверяем всю строку на наличие равенства номера элемента с формулой его нахождения, а во втором просто присваиваем ему это значение
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2010, 19:54
Привет! Вот еще темы с ответами:

Найти модуль разности максимального и минимального элементов матрицы - C++
Найти абсолютное значение разности максимального и минимального значения элементов двумерного массива на языке С++

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

Найти произведение элементов побочной диагонали матрицы Х(6,6). - C++
Помогите плиз на Turbo C

Найти сумму элементов главной (побочной) диагонали матрицы - C++
Дана квадратная матрица порядка M. Найти сумму элементов ее главной1|побочной2 диагонали.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.04.2010, 19:54
Ответ Создать тему
Опции темы

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