Массивы на C++задача

pymba
Сообщения: 25
Зарегистрирован: 07 дек 2008, 11:25

Помогите исправить ошибку
Задан массив {aij} размерности МxМ. Найти m=min(max{aij})

вот код,но он не точный,помогите исправитьпожалуйста... :( :confused: :rolleyes:

Код: Выделить всё

void main()
{
int i, j, n, m;

cout<<"Vvedite kolichestvo strok\n";
cin>>n;

cout<<"Vvedite kolichestvo stolbcov\n";
cin>>m;

for(i = 0; i < n; i++)
a[i] = new double [m];

cout<<"Enter massiv items\n";
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
cin>>a[i][j];

min = a[0][0];

for( j = 1; j < m; j++)
if( a[0][j] < min )
min = a[0][j];

max = min;

for(i = 1; i < n; i++)
{
min = a[i][0];

for( j = 1; j < m; j++)
if( a[i][j] < min )
min = a[i][j];

if( min > max)
max = min;
}
cout<<"\nmax(min{aij}) = "<<max;
Albor
Сообщения: 491
Зарегистрирован: 06 сен 2004, 13:34
Откуда: Днепропетровск

Нужно сделать недостающие объявления: не объявлен массив а и переменные min и max
pymba
Сообщения: 25
Зарегистрирован: 07 дек 2008, 11:25

помогите пожалуйста!исправьте?
Albor
Сообщения: 491
Зарегистрирован: 06 сен 2004, 13:34
Откуда: Днепропетровск

pymba писал(а):помогите пожалуйста!исправьте?

Код: Выделить всё

 
int i, j, n, m;
double min, max;
 
cout<<"Vvedite kolichestvo strok\n";
cin>>n;
 
cout<<"Vvedite kolichestvo stolbcov\n";
cin>>m;
double **a = new double*[n];
for(i = 0; i < n; i++)
a[i] = new double [m];
 
cout<<"Enter massiv items\n";
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
cin>>a[i][j];
 
min = a[0][0];
 
for( j = 1; j < m; j++)
if( a[0][j] < min )
min = a[0][j];
 
max = min;
 
for(i = 1; i < n; i++)
{
min = a[i][0];
 
for( j = 1; j < m; j++)
if( a[i][j] < min )
min = a[i][j];
 
if( min > max)
max = min;
}
cout<<"\nmax(min{aij}) = "<<max;
pymba
Сообщения: 25
Зарегистрирован: 07 дек 2008, 11:25

по-моему он что-то не то считает.Мне нужно найти min из max.помогите,plz!
Albor
Сообщения: 491
Зарегистрирован: 06 сен 2004, 13:34
Откуда: Днепропетровск

pymba, то же что и в других ваших вопросах. Лично я по математической формуле, приведенной вами, не могу понять задачу полностью, а из вашего кода вижу, что вы ищите минимум в 1й строке и 1м столбце массива, из них выбираете максимум. Так написаный код работает правильно. Если цель задачи другая, то поясните, что должна делать программа. Вероятно ожидается это:

Код: Выделить всё

 
int i, j, n, m;
double min, max;
 
cout<<"Vvedite kolichestvo strok\n";
cin>>n;
 
cout<<"Vvedite kolichestvo stolbcov\n";
cin>>m;
double **a = new double*[n];
for(i = 0; i < n; i++)
a[i] = new double [m];
 
cout<<"Enter massiv items\n";
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
cin>>a[i][j];
 
bool b(true);
for( i = 0; i < n; i++) 
{
j=0;
min=a[i][j];//запоминаем 1й элемент строки как минимальный
for(; j < m; j++)
{
if(a[i][j]<min) min=a[i][j];
//после этого цикла в min будет минимальный эл-т строки 
}
if(b)
{
max=min;
b=false;
}
else max=max<min?min:max;
}
cout<<"\nmax(min{aij}) = "<<max;
pymba
Сообщения: 25
Зарегистрирован: 07 дек 2008, 11:25

можете подсказать как решить задачу,не понимаю условие?
Заданы две точки (x1, y1) и (x2, y2) и прямая ax+by+c=0. Определить, лежат
ли обе точки относительно прямой в одной полуплоскости.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Имеется в виду, выяснить, лежат ли обе точки выше или ниже этой прямой. Выясняется элементарно: подставить координаты каждой точки в уравнение прямой и вычислить ax+by+c. Если для обеих точек сумма имеет один и тот же знак, то точки лежат в одной полуплоскости относительно прямой. Т.е. отрезок, соединяющий их, не пересекает эту прямую.
Реализуется все это одним оператором:
writeln((a*x1+b*y2+c)*(a*x2+b*y2+c)>0);
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
pymba
Сообщения: 25
Зарегистрирован: 07 дек 2008, 11:25

ну объясните мне как найти мин от макс!

plz!!! :( :( :(
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

В каждом отдельном столбце найти максимум (раздел "Алгоритмы", впрочем, сам код уже вроде писали). Выписать их все в один массив и найти в нем минимум.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить