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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2010, 00:02   #1
TYMON
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 80
По умолчанию Двухмерный массив. Не пойму где ошибка

Дана матрица B[N, М]. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом строки соответственно.
Код:
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
float mas[20][20],a,b,min,max,n,m;
int i,j;
clrscr();
cout<<"Vvedite kolichestvo strok: ";
cin>>m;
cout<<"Vvedite kolichestvo stolbcov: ";
cin>>n;
cout<<"Vvedite konci otrezka: ";
cin>>a>>b;
cout.precision(2);
randomize();
cout<<"Ishodniy massiv:\n";
for (i=0;i<=n-1;i++)
{
for (j=0;j<=m-1;j++)
{
mas[i][j]=(b-a)*rand()/32767+a;
cout.width(6);
cout<<mas[i][j]<<" ";
}
cout<<"\n";
}

for ( i=0; i<=n-1;i++)
{
max=0;
min=0;
for (j=0;j<=m-1;j++)
if (mas[i][j]>max)
{
max=mas[i][j];
//zamenyaem pervie elementi
mas[i][0]=max;
}
if (mas[i][j]<min)
{
min=mas[i][j];
//zamenyaem poslednie elementi
mas[i][j+1]=min;
}
cout<<"\n";
cout<<"Maximalniy element "<<i+1<<" stroki = "<<max;
cout<<" Minimalniy element "<<i+1<<" stroki = "<<min;
}

//pol
cout<<"\nPolucheniy massiv:\n";
for (i=0;i<=n-1;i++)
{
for (j=0;j<=m-1;j++)
{
cout.width(6);
cout<<mas[i][j]<<" ";
}
cout<<"\n";
}
getch();
return;
}
Все вроде бы работает, максимальное ищется, и успешно заменяется на первые элементы каждой строки. А вот с минимальным возникли проблемы, выдает минимальным 0 (и естественно не заменяется)...Укажите ошибку пожалуйста
TYMON вне форума Ответить с цитированием
Старый 20.06.2010, 00:15   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
for (j=0;j<=m-1;j++)
if (mas[i][j]>max){max=mas[i][j];//zamenyaem pervie elementimas[i][0]=max;}
if (mas[i][j]<min){min=mas[i][j];//zamenyaem poslednie elementimas[i][j+1]=min;}
Перечитайте код! В цикле у вас работает только первый иф.
p51x вне форума Ответить с цитированием
Старый 20.06.2010, 00:18   #3
TYMON
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 80
По умолчанию

я понимаю , я просто не вижу где ошибка...
TYMON вне форума Ответить с цитированием
Старый 20.06.2010, 00:30   #4
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Код:
for (j=0;j<=m-1;j++)
{
if (mas[i][j]>max)
{
max=mas[i][j];
//zamenyaem pervie elementi
mas[i][0]=max;
}
if (mas[i][j]<min)
{
min=mas[i][j];
//zamenyaem poslednie elementi
mas[i][j+1]=min;
}
cout<<"\n";
cout<<"Maximalniy element "<<i+1<<" stroki = "<<max;
cout<<" Minimalniy element "<<i+1<<" stroki = "<<min;
}
}
Сделай вот так...
mMAg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
New Title garyanikin Общие вопросы Delphi 3 08.05.2010 14:17
[title]Fort Net![/title] lithwe Общие вопросы Delphi 0 11.04.2010 02:00
Вытащить строку <title> .... </title> в txt файл kzld HTML и CSS 7 01.07.2009 11:35
ovElements и TITLE и другое PashaXP Win Api 0 06.08.2008 09:40