Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 10
1

Поменять местами первую строку матрицы с той строкой, где находится максимальный элемент

06.11.2018, 10:40. Просмотров 1575. Ответов 2

Задана матрица А(4,4). Если максимальный элемент
матрицы равен сумме элементов первой строки, то
поменять местами первую строку с той строкой, где
находится максимальный элемент.
Помогите, нужно сделать через указатель, без указателя сделал.
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
#include<stdio.h>
#include<math.h>
main()
{int a[4][4], i,j,s,k,m,max;
int p[4];
 
for(i=0; i<4; i++){
for(j=0; j<4; j++)
scanf("%d", &a[i][j]);
p[i]=a[0][i];}
 
max=a[0][0];k=0;m=0;
for(i=0; i<4; i++)  
{for(j=0; j<4; j++)
if(max<a[i][j])
{max=a[i][j];k=i; m=j;}
}
s=0;
for(j=0; j<4; j++){
s+=a[0][j];}
 
for(i=0; i<4; i++)
{if(max==s){
    p[i]=a[0][i];
   a[0][i]=a[k][i];
 a[k][i]=p[i];
 } 
 }
  
  
for(i=0; i<4; i++)  
{for(j=0; j<4; j++)
printf("%d ", a[i][j]);
printf("\n");}
    }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2018, 10:40
Ответы с готовыми решениями:

Матрица. Поменять местами первую с той строкой, где находится минимальный элемент
Ребят помогите решить задачку! Задана матрица В(4,4). Если максимальный элемент матрицы равен сумме...

Поменять местами последнюю строку со строкой, в которой находится максимальный элемент матрицы
В матрице из действительных минусовых чисел поменять местами последний рядок с рядком, в котором...

В заданной матрице поменять местами первую строку со строкой, содержащей максимальный отрицательный элемент матрицы
Помогите, кто может! Нигде помощи не нашла, хотя подобные темы есть; не получается, а скоро...

Найти максимальный элемент главной диагонали матрицы, поменять местами строку/столбец, где он находится
С клавиатуры вводится матрица чисел P Найти максимальнный элемент главной диагонали Поменять...

2
1464 / 929 / 808
Регистрация: 30.04.2016
Сообщений: 3,216
06.11.2018, 14:04 2
Лучший ответ Сообщение было отмечено Полынь_228 как решение

Решение

Полынь_228, здравствуйте! Вот решение:

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
#include <iostream> 
#include <climits>
 
    using namespace std;
 
int main() {
    int sum, max = INT_MIN, index;
    int(*a)[4];
    a = new int[4][4];
    cout << "Enter a matrix:\n";
    for (int i = 0; i < 4; i++) {
        sum = 0;
        for (int j = 0; j < 4; j++) {
            cin >> *(*(a + i) + j);
            sum += *(*(a + 0) + j);
            if (a[i][j] > max) {
                max = *(*(a + i) + j);
                index = i;
            }
        }
    }
    if (max == sum) {
        for (int j = 0; j < 4; j++) {
            swap(*(*(a + 0) + j), *(*(a + index) + j));
        }
    }
    cout << "Output of the program:\n";
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            cout << *(*(a + i) + j) << " ";
        }
        cout << "\n";
    }
    system("pause");
    return 0;
}
0
5526 / 3757 / 2202
Регистрация: 18.12.2017
Сообщений: 11,858
06.11.2018, 19:45 3
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
#include <iostream>
#include <cmath>
using namespace std;
 
int main() 
{    
    int imax=0;
    const int n=4;
    double a[4][4], sum=0.0, max=0.0, eps=1e-9;    
    
    cout << "Enter "<<n*n<<" matrix elements:\n";
    for (int i = 0; i < n; i++) {    
        for (int j = 0; j < n; j++) {
            cin >> *(*(a + i) + j);
            if (i==0) sum+=*(*a + j);
            if ((i==0 && j==0) || *(*(a + i) + j)>max) {max=*(*(a + i) + j);imax=i;}
        }
    }
    cout << "\n";
    
    if (fabs(max-sum)<eps) 
    swap (*a, *(a + imax));
    
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << *(*(a + i) + j) << " ";
        }
        cout << "\n";
    }
system("pause");
return 0;
}
если max несколько поменяет с первым
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2018, 19:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Строку матрицы содержащую максимальный элемент, поменять с первой строкой местами
Дана матрица N на M . Найти максимальный элемент и строка, содержащий этот элемент, поменять с...

Матрицы: поменять местами первую строку и строку, содержащую максимальный элемент
1)В матрице поменять местами 1 строку и строку содержащие последнее вхождение элемента...

Поменять местами первую строку матрицы и строку, содержащую максимальный отрицательный элемент
:cry: Ребята выручайте. Без вас мне край. У меня не было С++ ,но мне надо сделать задачку и...

В матрице поменять местами первую строку и строку содержащую максимальный отрицательный элемент
В заданной матрице из целых чисел поменять местами первую строку и строку,содержащую максимальный...


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

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

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