Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 21.10.2013
Сообщений: 2
1

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

21.10.2013, 13:59. Показов 1089. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста найти ошибку и исправить её в задаче.Пишу в билдере 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 значений в строке матрицы  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2013, 13:59
Ответы с готовыми решениями:

Ошибка при определении max и min элемента в каждой строке матрицы
Здравствуйте:), подскажите пожалуйста на ошибку, дана задача: Дана матрица NxM. Определить...

Помощь в нахождении max и min
Добрый день помогите пожалуйста вывести наибольшее и наименьшее значение в матрице 20х30 от 1 до...

Процедура: Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c))
Даны три числа a,b,c. Вычислить (max(a,b)+min(a,c))/(max(b,c)*min(a,b))+max(min(a,b),min(b,c)) с...

Сформировать одномерный массив из произведений max и min значений матрицы
Не могу сформировать одномерный массив из произведений max и min значений матрицы А:( Dim...

2
128 / 125 / 39
Регистрация: 11.04.2010
Сообщений: 255
21.10.2013, 16:25 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;
}
1
0 / 0 / 1
Регистрация: 21.10.2013
Сообщений: 2
21.10.2013, 16:31  [ТС] 3
Кажется я понял.Ошибка в етих строчках:
C++
1
2
F [i ][ 0 ] = F[ i ][ jmax ];
F [i ][ t - 1 ]= F [i ][ jmin ] ;
Минимальное значение заменяется на 9 и потом оно приравнивается как минимальное на конец.Вопрос как сделать их независимыми друг от друга.

Добавлено через 2 минуты
Спасибо.как приеду гляну и отпишу.
0
21.10.2013, 16:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2013, 16:31
Помогаю со студенческими работами здесь

В каждой строке матрицы найти min и max, поменять местами
Условие: В каждой строке матрицы A=(aij)mxn найти максимальный и минимальный элементы. Сформировать...

Найти min по каждой строке матрицы и max по каждому столбцу
Вводится порядок квадратной матрицы n. Вводятся элементы квадратной матрицы построчно. Необходимо...

Определить в каждой строке матрицы max и min элементы, после чего поменять их местами
Дана матрица D(8x8), элементами которой являются целые числа. определить в каждой строке max и min...

Найти в каждой строке матрицы среднее арифметическое max отрицательного и min положительного элементов
Составить программу , которая находит в каждой строке матрицы Q(k,l) среднее арифметическое...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru