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

ошибка в нахождении max и min значений в строке матрицы - C++

Восстановить пароль Регистрация
 
Kasteton
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 2
21.10.2013, 13:59     ошибка в нахождении max и min значений в строке матрицы #1
Помогите пожалуйста найти ошибку и исправить её в задаче.Пишу в билдере 2007.
Задание таково
Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно. Матрицу напечатать в общепринятом виде.Размерность матрицы вводитьс клавиатуры. Массив заполнять случайными числами. На экран выводить исходные данные и результат. F(N,.M) N<20 М<10
Вот что я сделал:
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
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
void main () {
int F[20][10],k,d,t,min,max,i,j,jmax,jmin,n,m;
cin >> d >> t;
for (int n=0; n<d;n++) {
for (int m=0;m<t;m++) {
F[n][m]= rand() % 10;
cout<< F[n][m] << " ";}
cout<< "\n";}
cout<<"________________________________ \n";
for(i=0; i<d; i++)
{
jmin=jmax=0;
min=max=F[i][0];
for(j=0; j<t; j++)
{
if(F[i][j]<=min) { min=F[i][j]; jmin=j; }
else
if(F[i][j]>=max) { max=F[i][j]; jmax=j; }
}
F[i][0]=F[i][jmax];
F[i][t-1]=F[i][jmin];
}
for (int n=0; n<d;n++) {
for (int m=0;m<t;m++) {
cout<< F[n][m] << " ";}
cout<< "\n";}
getch();
}
Проблема в том,что программа вроде работает правильно,но в некоторых случаях она просто копирует максимальное число и в конец.Например при вводе размера 6х7 выходит это(3 и 4 строка второй матрицы с 9 на конце) :
Миниатюры
ошибка в нахождении max и min значений в строке матрицы  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2013, 13:59     ошибка в нахождении max и min значений в строке матрицы
Посмотрите здесь:

C++ Найти min и max матрицы
C++ В каждой строке матрицы найти min и max, поменять местами
Массив: Найти в каждой строке max и min, поменять их местами. C++
C++ Помощь в нахождении max и min
C++ Матрицы. Min, max
C++ Используя алгоритм цикла вычислить 10 значений функции y=a*x*x+b*x+c при изменении x от x(min) до x(max)
В каждом столбце матрицы найти min элемент, а потом среди найденных мин значений найти max значение C++
Найти min по каждой строке матрицы и max по каждому столбцу C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexdemath
 Аватар для Alexdemath
125 / 122 / 6
Регистрация: 11.04.2010
Сообщений: 253
21.10.2013, 16:25     ошибка в нахождении max и min значений в строке матрицы #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
#include <iostream>
using namespace std;
 
int main()
{
    int N, M;
    cout << "Input matrix size:\n";
    cout << "  rows N = "; cin >> N;
    cout << "  cols M = "; cin >> M;
 
    cout << "\n\nMatrix:\n";
    int **F = new int *[N];
 
    for (int i = 0; i < N; i++)
     { F[i] = new int[M];
       for (int j = 0; j < M; j++)
        { F[i][j] = rand() % 10;
          cout << "  " << F[i][j];
        }
       cout << "\n";
     }
 
    cout << "\n\nResult:\n";
    for (int i = 0; i < N; i++)
     { int max = 0, min = 0;
 
       for (int j = 0; j < M; j++)
        { if (F[i][j] > F[i][max]) max = j; }
       if (max != 0)
        { int t1 = F[i][0]; F[i][0] = F[i][max]; F[i][max] = t1; }
 
       for (int j = 0; j < M; j++)
        { if (F[i][j] < F[i][min]) min = j; }
       if (min != M-1)
        { int t2 = F[i][min]; F[i][min] = F[i][M-1]; F[i][M-1] = t2; }
 
       for (int j = 0; j < M; j++) cout << "  " << F[i][j];
       cout << "\n";
     }
 
    cout << endl;
    system("pause");
    return 0;
}
Kasteton
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 2
21.10.2013, 16:31  [ТС]     ошибка в нахождении max и min значений в строке матрицы #3
Кажется я понял.Ошибка в етих строчках:
C++
1
2
F [i ][ 0 ] = F[ i ][ jmax ];
F [i ][ t - 1 ]= F [i ][ jmin ] ;
Минимальное значение заменяется на 9 и потом оно приравнивается как минимальное на конец.Вопрос как сделать их независимыми друг от друга.

Добавлено через 2 минуты
Спасибо.как приеду гляну и отпишу.
Yandex
Объявления
21.10.2013, 16:31     ошибка в нахождении max и min значений в строке матрицы
Ответ Создать тему
Опции темы

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