Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Динамический массив (С++)

29K
28 января 2008 года
mouseR
9 / / 27.11.2007
У меня такая задача: требуеться удалить из матрицы строку и столбец, на пересичении каторых находиться максимальный элемент массива.
Вот код:
Код:
#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.
Подскажите пожалуста как исправить, чтоб прога нармально работала.
11
28 января 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: mouseR
У меня такая задача: требуеться удалить из матрицы строку и столбец, на пересичении каторых находиться максимальный элемент массива.

Однако компилятор пишет ошибку с переменной m.
Подскажите пожалуста как исправить, чтоб прога нармально работала.


 
Код:
void del( int n,int m, int **a)
1
28 января 2008 года
kot_
7.3K / / 20.01.2000
Во-первых, у вас не совпадает объявление и реализация функций. Во вторых у ошибки как правило есть название - компилятор ведь не выводит вам:
Цитата:

ошибку с переменной m


он выдает конкретную ошибку в конкретной строке.

1.8K
28 января 2008 года
CilCatblack
251 / / 20.09.2007
Попробуй так:) :
 
Код:
...
    cout<<"Vvedite razmer: n,m";
    cin>>n;
        cin>>m;
       ...
29K
28 января 2008 года
mouseR
9 / / 27.11.2007
Цитата: CilCatblack
Попробуй так:) :
 
Код:
...
    cout<<"Vvedite razmer: n,m";
    cin>>n;
        cin>>m;
       ...



хех.
точно!
совсем слепой стал
спасиба

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог