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

Найти и заменить нулём максимальное и минимальное значение в каждом столбце матрицы - C++

Восстановить пароль Регистрация
 
NikiCoon
0 / 0 / 0
Регистрация: 10.05.2014
Сообщений: 11
13.05.2014, 13:18     Найти и заменить нулём максимальное и минимальное значение в каждом столбце матрицы #1
Здравствуйте, не знаю в чём ошибка( Вводит матрицу и выводит, а вот с остальным проблема(
Задача такова: Дана матрица размером 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "StdAfx.h"
#include <iostream>
#include <math.h>
#define N 3
#define M 3
 
 
void FormMas(int (&mas)[N][M])
{
    //ввод массива
    for (int i=0;i<N;i++) {
        for (int j=0;j<M;j++) {
            printf("Element [%i][%i]=", i,j);
            scanf("%i",&mas[i][j]);
        }
    } 
}
 
 
 
void DisplayMas(int (&mas)[N][M])
{
    //выводим на экран введенный массив
    printf("\nMas:\n\n");
    for (int i=0;i<N;i++) {
        for (int j=0;j<M;j++)
            printf("%2i ",mas[i][j]);
        printf("\n");
    }
}
 
void Min(int (&mas)[N][M])
{
   int i,j,i1; int min;
   for (j=0; j<M; j++)
   {
   min=mas[0][j];
      for(i=0; i<N; i++)
      {if ( mas[i][j]<min)
  { min=mas[i][j];
    i1=i;  }
          }
  mas[i1][j]=0; }
}
 
 
void Max(int (&mas)[N][M])
{
   int i,j,i1; int max;
   for (j=0; j<M; j++)
   {
   max=mas[0][j];
      for(i=0; i<N; i++)
      {if ( mas[i][j]>max)
  { max=mas[i][j];
    i1=i;  }
          }
  mas[i1][j]=0; }
}

Основная функция:

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
#include "stdafx.h"
#include "var17_3.h"
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{ int a[N][M]; 
 
FormMas(a);
cout<<" "<< '\n';
DisplayMas(a);
cout<<" "<< '\n';
Min(a);
cout<<" "<< '\n';
Max(a);
cout<<" "<< '\n';
    
    system ("pause");
 
        return 0;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2014, 13:18     Найти и заменить нулём максимальное и минимальное значение в каждом столбце матрицы
Посмотрите здесь:

C++ Найти максимальное и минимальное значение функции
C++ Задана матрица А(4,4). Заменить первый нуль в каждом столбце на количество нулей в этом столбце
В каждом столбце прямоугольной матрицы заменить элементы меньше среднего арифмитического этого столбца нулевым значением C++
Найти максимальное значение для первой четверти матрицы и минимальное — для третьей четверти C++
В каждом столбце матрицы найти min элемент, а потом среди найденных мин значений найти max значение C++
Найти минимальное|максимальное значение в каждой строке матрицы C++
C++ Найти минимальное|максимальное значение в каждой строке матрицы
C++ Найти наибольший элемент в каждом столбце матрицы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lawr
 Аватар для lawr
342 / 236 / 114
Регистрация: 09.05.2014
Сообщений: 727
13.05.2014, 14:10     Найти и заменить нулём максимальное и минимальное значение в каждом столбце матрицы #2
у тебя операция присваивания минимальному и максимальному элементам нуля вынесена за цикл.
надо:
C++
1
2
3
4
5
6
7
for(i=0; i<N; i++)
      {if ( mas[i][j]<min)
  { min=mas[i][j];
    i1=i;  }
    mas[i1][j]=0;
          }
   }
аналогично для максимального.
Yandex
Объявления
13.05.2014, 14:10     Найти и заменить нулём максимальное и минимальное значение в каждом столбце матрицы
Ответ Создать тему
Опции темы

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