Прошу помочь найти ошибку. Задание было таким: Дана целочисленная прямоугольная матрица. Определить:
- сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент;
- номера строк и столбцов всех седловых точек матрицы.
Пояснение: Матрица А имеет седловую точку Аij, если Аij является минимальным элементом в i-й строке и максимальным в j-м столбце.
Вот код:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <windows.h>
#include <iomanip.h>
#include <vcl.h>
#pragma hdrstop
#pragma argsused
//////-----------------------------------------------------
char *rus(const char *text);//
int main (int argc,char* argv[])
int n,m,i,j,sum=0,ipos=0,jpos=0,maxmin=0,minmax=0;
cout<<rus("Введите размерность массива:")<<endl;
cout<<rus("\n Введите количество строк: n=");cin>>n;//
cout<<rus("Введите количество столбцов: m=");cin>>m;//
int=random();
int **a=new int*[n];
for(i=0;i<n;i++) a[i]=new int[m];
int *min=new int[n];
int *max=new int [m];
cout<<rus("\nВведите элементы массива:")<<endl<<endl;
for(i=0;i<n;i++)
for(j=0;j<m;j++) a[i][j]=-5+random(20);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<setw(4)<<a[i][j];
cout<<endl;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
if(a[i][j]<0)
{
for(j=0;j<m;j++)
sum+=a[i][j];
cout<<endl;
cout<<rus("Сумма элементов в ");
cout<<(i+1)<<rus("строке:")<<sum;
sum=0;
}
}
for(i=0;i<n;i++)
{
min[i]=a[i][0];
}
for(i=0;i<n;i++)
{
for(j=0;j<m-1;j++)
if(a[i][j+1]<min[i])
{
min[i]=a[i][j+1];
}
}
cout<<endl;
cout<<rus("\nМинимальный элемент по строкам:")<<endl<<endl;
for(i=0;i<n;i++) cout<<setw(4)<<min[i]<<endl;
for(j=0;j<m;j++)
{
max[j]=a[0][j];
}
for(j=0;j<m;j++)
{
for(i=0;i<n-1;i++)
if(a[i+1][j]>max[j])
{
max[j]=a[i+1][j];
}
}
cout<<endl;
cout<<rus("Максимальный элемент по столбцам:")<<endl<<endl;
for(j=0;j<m;j++) cout<<setw(4)<<max[j];
minmax=min[0];
for(i=0;i<n;i++)
if(min[i]>minmax)
{
minmax=min[i];
ipos=i;
}
cout<<rus("\n\nМаксимальный из минимальных по строкам:")<<minmax;
maxmin=max[0];
for(j=0;j<m;j++)
if(max[j]<maxmin)
{
maxmin=max[j];
jpos=j;
}
cout<<rus("\nМинимальный из максимальных по столбцам")<<maxmin;
cout<<rus("\nСедловая точка:")<<a[ipos][jpos];
getch();
return 0;
}
//------------------------------------------------------------
char bufrus[256];
char *rus(const char *text)
{
CharToOem(text,bufrus);
return bufrus;
}