Форум программистов, компьютерный форум CyberForum.ru

переделать под использаовние указателей - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Динамический Массив http://www.cyberforum.ru/cpp-beginners/thread143277.html
Попалось вот такое задание на подготовке к экзамену,к сожалению не смог понять как работать с динамическим массивом. Добавить в массив строку,удалить столбец,распечатать,но все это надо сделать через динамический массив. Прошу помощи,заранее спасибо
C++ Нахождение и подсчет глассных Прошу помощи:задание звучит так.Скопировать из файла 1 в файл 2 строки,которые задаються пользователем,подсчитать количество гласных в этих строчках. Вот написал программу но она считает только гласные в последней строчке и выводит 1 строчку,т.е например вводим с 1 по 4 она 4 раза выведет первую строчку.Очень надеюсь на помощь,заранее спасибо #include "stdafx.h" #include <iostream>... http://www.cyberforum.ru/cpp-beginners/thread143272.html
C++ Правильное освобождение памяти
Здрасти. Двумерный динам. массив: int** matr=new int*; for (int i=0; i<rows; ++i) matr=new int; память правильно так освобождать?: for (int i=0; i<rows; ++i) delete matr;
C++ Поиск разности между максимальным и минимальным значениями массива
Поросил друг,желательно на С++... Дан массив A из 10 значений. Найти разность между максимальным и минимальным значениями массива. Ввод массива и поиск максимального и минимального элементов оформить в виде перегруженной функции.
C++ Указатели и динамические структуры данных http://www.cyberforum.ru/cpp-beginners/thread143221.html
Задание 1. Дан указатель P1 на вершину стека (если стек пуст, то P1 = nil). Из- влечь из стека все элементы и вывести их значения. Вывести также коли- чество извлеченных элементов N (для пустого стека вывести 0). После из- влечения элементов из стека освобождать память, которую они занимали. Задание 2 Дано число D и указатели P1 и P2 на начало и конец очереди (если ...
C++ Не ясен смысл функции. Деревья. Доброго времени суток. Не могу понять смысла функции F2. #include <stdio.h> struct tree { int val; tree *child,*next; } подробнее

Показать сообщение отдельно
Kelheor
1 / 1 / 0
Регистрация: 16.03.2010
Сообщений: 9
10.06.2010, 01:37  [ТС]     переделать под использаовние указателей
И тем не менее.вывел глобальные отдельно.ошибка связана не с размерностью, а с тем что алгоритм рассматривает адреса с неверными значениям.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;
int **mx,i,j,N,M;
 
 
int min(int a,int b,int c)
{
if(a<b && a<c)
    return a;
    else
        if(b<c && b<a)
            return b;
    else 
        if(c<b && c<a)
            return c;
}
 
void input(int **arr,int m,int n)
{
        cout << "fill the matrix" <<endl;
        srand(time(0));
        for (i=0 ; i < n ; i++)
        {
                for ( j = 0 ; j < m ; j++)
                {
                    arr[i][j]=rand()%(-2)+0;
                }
        }
}
 
void minor(int **arr,int m,int n)
{
    int maxDim=0;
        for (i=n-1;i>0;i--)
        {
                for(j=m-1;j>0;j--)
                { 
                        if(arr[i][j]!=0)
                                {
                    arr[i][j]=min(arr[i+1][j], arr[i+1][j+1], arr[i][j+1])+1;
//вот предидущая строка вызывает ошибку
                                        if (arr[i][j]>maxDim)maxDim=arr[i][j];
                        }
                }
        }
        cout<<maxDim;
}
 
 
void output(int **arr,int m,int n)
{
        cout << "the matrix is:" <<endl;
         for (i=0;i<n;i++)
        {
              for ( j=0 ; j < m ; j++)
                        cout << arr[i][j] << '\t';
                        cout << endl;
        }
 
}
 
 
void main()
{
    cout<<"enter rows and colunms\t";
    cin>>M>>N;
    mx=new int *[];
    for(i=0;i<N;i++)mx[i]=new int[N];
    input(mx,M,N);
    output(mx,M,N);
    minor(mx,M,N);
    getch();
}
может рандомом 0 или 1 неправильно задал?
хотя внешне выдает 0 и 1

Добавлено через 12 минут
Все! Спасибо за помощь!нашел ошибку: в массиве во время просмотра елемент берется не n-1 а n-2 это ж не паскаль
советую исходник в кинуть в решенные учебные,может еще кому пригодится, а то нигде кроме алгоритма ничерта нету
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;
int **mx,i,j,N,M;
 
 
int min(int a,int b,int c)
{
if(a<b && a<c)
    return a;
    else
        if(b<c && b<a)
            return b;
    else 
        if(c<b && c<a)
            return c;
}
 
void input(int **arr,int m,int n)
{
        cout << "fill the matrix" <<endl;
        srand(time(0));
        for (i=0 ; i < n ; i++)
        {
                for ( j = 0 ; j < m ; j++)
                {
                    arr[i][j]=rand()%(-2)+0;
                }
        }
}
 
void minor(int **arr,int m,int n)
{
    int maxDim=0;
        for (i=n-2;i>0;i--)
        {
                for(j=m-2;j>0;j--)
                { 
                       if(arr[i][j]!=0)
                                {
                        arr[i][j]=min(arr[i+1][j], arr[i+1][j+1], arr[i][j+1])+1;
                                    if (arr[i][j]>maxDim)maxDim=arr[i][j];
                }
                }
        }
        cout<<maxDim;
}
 
 
void output(int **arr,int m,int n)
{
        cout << "the matrix is:" <<endl;
         for (i=0;i<n;i++)
        {
              for ( j=0 ; j < m ; j++)
                        cout << arr[i][j] << '\t';
                        cout << endl;
        }
 
}
 
 
void main()
{
    cout<<"enter rows and colunms\t";
    cin>>M>>N;
    mx=new int *[];
    for(i=0;i<N;i++)mx[i]=new int[N];
    input(mx,M,N);
    output(mx,M,N);
    minor(mx,M,N);
    getch();
}
 
Текущее время: 13:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru