0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 9
1

В заданной матрице переставить строки с минимальным и максимальным элементом

18.06.2014, 20:13. Показов 1258. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята, написал код а он не работает, хотя вроде все правильно, помогите подредактировать:

В заданном двухмерном массиве целых чисел, состоящего с n рядков и m строк, переставить рядки с минимальным и максимальным элементом.
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
#include <stdio.h>
main()
{
      const int n=2, m=3;
      int A[n][m], i, j, min, max, buf, nmax, nmin;
      for(i=0,i<n,i++)
      for(j=0,j<m,j++)
      scanf("%d %d", &A[n][m]);
      max A[0][0];//ïðèíèìàåì çà ìàêñ 1-é ýëåìåíò
      nmax=0;
      min A[0][0];//ïðèíèìàåì çà ìèí ïåðâûé ýëåìåíò
      nmin=0;
      for(i=0,i<n,i++)
      {
      if(A[i]>max)
      {
                      max A[i]; 
                      nmax=i;
      }
      if(A[i]<min) 
      {
                   min A[i];
                   nmin=i;
      }
      for(j=0,j<m,j++)
      {
                      buf=A[nmax][j];
                      A[nmax][j]=A[nmin][j];
                      A[nmin][j]=buf;
      }
      printf("A[&d]%[d]=%9d",i,j,A[i][j]);
      getchar(); getchar();
      }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2014, 20:13
Ответы с готовыми решениями:

В заданной матрице заменить строки с максимальным элементом на строку с минимальным элементом
Помогите девочке очень срочно нужна помощь Замена в матрице строки с максимальны элементом на...

Замена в матрице строки с максимальным элементом и столбца с минимальным элементом.
Помогите написать программу: В квадратной матрице поменять местами строку с максимальным...

Переставить в обратном порядке элементы между минимальным и максимальным элементом массива
Помогите пожалуйста задачу решить! Последняя осталась, никак не решу её ибо с массивами не дружу...

Вычислить скалярное произведение строки с максимальным элементом и столбца с минимальным элементом матрицы
Дана квадратная матрица целых чисел размером nхn. Вычислить скалярное произведение строки с...

9
191 / 161 / 116
Регистрация: 14.09.2013
Сообщений: 302
19.06.2014, 11:18 2
Цитата Сообщение от Вадик_Гэлык Посмотреть сообщение
scanf("%d %d", &A[n][m]);
scanf("%d", &a[i][j])

Добавлено через 1 минуту
Цитата Сообщение от Вадик_Гэлык Посмотреть сообщение
main()
C
1
2
3
...
void main(){
...
Добавлено через 2 минуты
Цитата Сообщение от Вадик_Гэлык Посмотреть сообщение
for(i=0,i<n,i++)
for(j=0,j<m,j++)
разделители не ",", a ";"

Добавлено через 2 минуты
Цитата Сообщение от Вадик_Гэлык Посмотреть сообщение
max A[0][0];
max=A[0][0]
Цитата Сообщение от Вадик_Гэлык Посмотреть сообщение
min A[0][0]
min=A[0][0]

Добавлено через 7 минут
Цитата Сообщение от Вадик_Гэлык Посмотреть сообщение
for(j=0,j<m,j++)
{
buf=A[nmax][j];
A[nmax][j]=A[nmin][j];
A[nmin][j]=buf;
}
printf("A[&d]%[d]=%9d",i,j,A[i][j]);
не понимаю, что ты на этом куске пытаешься сделать?
0
266 / 192 / 50
Регистрация: 16.06.2014
Сообщений: 424
19.06.2014, 11:23 3
не понимаю, что ты на этом куске пытаешься сделать?
Меняет строки местами.
2
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 9
19.06.2014, 16:19  [ТС] 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>
main()
{
      const int n=2, m=3;
      int A[n][m], i, j, min, max, buf, nmax, nmin;
      for(i=0;i<n;i++)
      for(j=0;j<m;j++)
      scanf("%d", &A[i][j]);
      max=A[0][0];//принимаем за макс 1-й элемент
      nmax=0;
      min=A[0][0];//принимаем за мин первый элемент
      nmin=0;
      for(i=0;i<n;i++)
      for(j=0;j<m;j++)
      {
      if(A[i][j]>max)
      {
                      max=A[i][j]; 
                      nmax=i;
      }
      if(A[i][j]<min) 
      {
                   min=A[i][j];
                   nmin=i;
      }
      for(j=0;j<m;j++)
      {
                      buf=A[nmax][j];
                      A[nmax][j]=A[nmin][j];
                      A[nmin][j]=buf;
      }
      printf("A[%d][%d]=%9d",i,j,A[i][j]);
      getchar(); getchar();
  }
}
0
191 / 161 / 116
Регистрация: 14.09.2013
Сообщений: 302
19.06.2014, 16:40 5
потому что вместо этого
Цитата Сообщение от Вадик_Гэлык Посмотреть сообщение
printf("A[%d][%d]=%9d",i,j,A[i][j]);
нужно выводить:
C
1
2
3
4
5
for (i = 0; i < n; i++){
    for (j = 0; j < m; j++)
        printf("%d ", A[i][j]);
    printf("\n");
}
0
Чорумфанин
346 / 346 / 320
Регистрация: 06.03.2014
Сообщений: 899
19.06.2014, 16:48 6
Циклы странные у Вас
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  for(i=0;i<n;i++)     //  на входе i=0, фигурных скобок нет, знач выполнится один раз
        for(j=0;j<m;j++)   //  тут на входе j=0
          {
                if(A[i][j]>max)
                  {
                                  max=A[i][j];
                                  nmax=i;
                  }
              if(A[i][j]<min)
                  {
                               min=A[i][j];
                               nmin=i;
                  } 
              for(j=0;j<m;j++)     //  тут опять цикл по j ?!  на входе j=0, на выходе j=m
                  {
                                  buf=A[nmax][j];
                                  A[nmax][j]=A[nmin][j];
                                  A[nmin][j]=buf;
                  }
              printf("A[%d][%d]=%9d",i,j,A[i][j]);  // печатается один элемент
              getchar(); getchar();
          }  // завершение цикла по j, потому что j=m
0
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 9
19.06.2014, 18:03  [ТС] 7
Все написал, а выводит блин начальную матрицу((
0
191 / 161 / 116
Регистрация: 14.09.2013
Сообщений: 302
19.06.2014, 21:23 8
Лучший ответ Сообщение было отмечено Вадик_Гэлык как решение

Решение

Вадик_Гэлык,
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>
 
int main(){
    const int n=2, m=3;
    int A[n][m], i, j, min, max, buf, nmax, nmin;
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
           scanf("%d", &A[i][j]);
    max=A[0][0];
    nmax=0;
    min=A[0][0];
    nmin=0;
    for(i=0;i<n;i++)
        for(j=0;j<m;j++){
            if(A[i][j]>max){
                max=A[i][j]; 
                nmax=i;
            }
            if(A[i][j]<min){
                min=A[i][j];
                nmin=i;
            }
        }
    for(j=0;j<m;j++){
        buf=A[nmax][j];
        A[nmax][j]=A[nmin][j];
        A[nmin][j]=buf;
    }
    for (i=0;i<n;i++){
        for(j=0;j<m;j++)
            printf("%3d", A[i][j]);
        printf("\n");
    }
return(0);
}
1
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 9
19.06.2014, 21:45 9
AlexKolc, помоги мне пожалуйста
0
266 / 192 / 50
Регистрация: 16.06.2014
Сообщений: 424
23.06.2014, 09:57 10
Все написал, а выводит блин начальную матрицу((
Учтите, что матрица не изменится, если при тестировании максимальный и минимальный элемент находятся в одной строке.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2014, 09:57
Помогаю со студенческими работами здесь

Переставить в матрице строку с максимальным элементом на главной диагонали со строкой с заданным номером
Задана квадратная матрица. Переставить строку с максимальным элементом на главной диагонали со...

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

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

В матрице найти строки с максимальным и минимальным элементами
В общем, есть задача: найти в массиве строку с максимальным и минимальным элементом всей матрицы....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru