Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2013, 14:45   #1
kasteton
Новичок
Джуниор
 
Регистрация: 21.10.2013
Сообщений: 2
По умолчанию ошибка в нахождении max и min значений в строке матрицы

Помогите пожалуйста найти ошибку и исправить её в задаче.Пишу в билдере 2007.
Задание таково:
Цитата:
Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно. Матрицу напечатать в общепринятом виде.Размерность матрицы вводитьс клавиатуры. Массив заполнять случайными числами. На экран выводить исходные данные и результат. F(N,.M) N<20 М<10
Вот что я сделал:
Код:
#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 на конце) :
Изображения
Тип файла: jpg Снимок.jpg (15.7 Кб, 122 просмотров)
kasteton вне форума Ответить с цитированием
Старый 21.10.2013, 21:53   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Код:
jmin=jmax=0;
Зачем Вам это? Ведь Вы в каждой строке определяете min и max
Код:
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];
, а
Код:
F[i][0]=max;
F[i][t-1]=min;
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 07.01.2014, 13:50   #3
kasteton
Новичок
Джуниор
 
Регистрация: 21.10.2013
Сообщений: 2
По умолчанию

Спасибо огромное

Последний раз редактировалось kasteton; 07.01.2014 в 13:54.
kasteton вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
n - массивов, разной размерности, нужно найти min и max в этих массивах. Из полученных min найти наименьший элемент, из max наибол dmks Помощь студентам 5 09.10.2013 20:48
списке целых чисел все элементы между max и min заменить полусуммой max и min Roman one C/C++ Базы данных 0 20.12.2012 12:14
Матрица Min-Max и Max-Min boog Помощь студентам 3 23.12.2010 13:19
Разность max min Си++ Где ошибка? Медина Помощь студентам 18 20.04.2009 00:03
Как найти max и min элементы матрицы????? ЕвгениуS Помощь студентам 19 02.03.2008 19:47