#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <time.h>
using namespace std;
void del(int &n, int &m,int **a);
void output(int n,int m, int **a);
int _tmain(int argc, _TCHAR* argv[])
{
int n,m;
cout<<"Vvedite razmer: ";
cin>>n,m;
int i,j;
int **p;
p=new int* [n];
srand((unsigned)time(NULL));
for(i=0;i<n;i++)
{
p=new int [m];
for(j=0;j<m;j++)
p[j]=(double)rand()/RAND_MAX*(20+10)-10;
}
output(n,m,p);
del(n,m,p);
output(n,m,p);
for(i=0;i<n;i++)
delete p;
delete []p;
return 0;
}
void output(int n,int m,int **a)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cout<<setw(5)<<*(*(a+i)+j)<<ends;
cout<<endl;
}
}
void del( int &n,int &m, int **a)
{
int nmax=0,mmax=0,i,j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
if (*(*(a+i)+j)>*(*(a+nmax)+mmax))
{
nmax=i;
mmax=j;
}
}
[COLOR="Red"]cout<<"max="<<*(*(a+nmax)+mmax)<<ends<<"["<<nmax+1<<"]["<<mmax+1<<"]"<<endl;
for(i=nmax;i<n-1;i++)
for(j=0;j<m;j++)
*(*(a+i)+j)=*(*(a+i+1)+j);
--n;
for(j=mmax;j<m-1;j++)
for(i=0;i<n;i++)
*(*(a+i)+j)=*(*(a+i)+j+1);
--m;[/COLOR]}
Динамический массив (С++)
Вот код:
Код:
Однако компилятор пишет ошибку с переменной m.
Подскажите пожалуста как исправить, чтоб прога нармально работала.
Цитата: mouseR
У меня такая задача: требуеться удалить из матрицы строку и столбец, на пересичении каторых находиться максимальный элемент массива.
Однако компилятор пишет ошибку с переменной m.
Подскажите пожалуста как исправить, чтоб прога нармально работала.
Однако компилятор пишет ошибку с переменной m.
Подскажите пожалуста как исправить, чтоб прога нармально работала.
Код:
void del( int n,int m, int **a)
Цитата:
ошибку с переменной m
он выдает конкретную ошибку в конкретной строке.
Код:
...
cout<<"Vvedite razmer: n,m";
cin>>n;
cin>>m;
...
cout<<"Vvedite razmer: n,m";
cin>>n;
cin>>m;
...
Цитата: CilCatblack
Попробуй так:) :
Код:
...
cout<<"Vvedite razmer: n,m";
cin>>n;
cin>>m;
...
cout<<"Vvedite razmer: n,m";
cin>>n;
cin>>m;
...
хех.
точно!
совсем слепой стал
спасиба