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

Проблема с динамическим массивом - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
31.08.2011, 19:39     Проблема с динамическим массивом #1
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
#include "stdafx.h"
#include<iostream>
#include<conio.h>
using namespace std;
int l,r,i=0,j=0,k=0,k1=0,k2=0,x=2,z=1;int ost;
int _tmain(int argc, _TCHAR* argv[])
{
    int *m[10000],n[10000];
    cin>>l>>r;
    int r1=r-l;
    while(i<=r1)
    {
        m[i]=new int(l);l++;cout<<*m[i];i++;
    }
    cout<<endl;
    while(z<3)
    {
        k1=0;
        for(j=0,k=0;j<=r1;j++)
        {
         ost=*m[j]%x;
         if(ost!=0)m[k++]=m[j];
         else if (ost==0)m[j]=NULL;
        }
        while(k1<k)
        cout<<*m[k1++];x++;r1=k1;z++;
        cout<<endl<<k1;
    }
    getch();
    return 0;
}
Оно не хочет щитать для z=2;z=1 все пашет отлично почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2011, 19:39     Проблема с динамическим массивом
Посмотрите здесь:

Проблема с динамическим массивом C++
Работа с динамическим массивом C++
C++ Работа с динамическим массивом
Работа с динамическим массивом C++
трабл с динамическим массивом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
01.09.2011, 14:39     Проблема с динамическим массивом #21
Теперьменее скептически к коду ТС отношусь, но запись такая что чёрт ногу сломит, думаю есть более приемлеммые способы инициализации и организации памяти.
Всё же надеюсь ТС даст описание работы алгоритма, чтобы ориентироваться не только на его логику можно было!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
01.09.2011, 17:42     Проблема с динамическим массивом #22
Преклоняюсь перед талантом ТС к обфускации кода.

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int l, r,
    i = 0, j = 0,
    k = 0, k1 = 0, k2 = 0,
    x = 2, z = 1;
 
int ost;
 
int _tmain( int argc, _TCHAR* argv[] )
{
    int *m[10000], n[10000];
 
    cin >> l >> r; // Тут стоит L (малая), а не цифра один
 
    int r1 = r - l; // Тут стоит L (малая), а не цифра один
 
    while( i <= r1 )
    {
        m[ i ] = new int( l ); // Тут стоит L (малая), а не цифра один
        l++;
        cout << *m [ i ];
        i++;
    }
 
    cout << endl;
 
    while( z < 3 )
    {
        k1 = 0;
 
        for( j = 0, k = 0; j <= r1; j++ )
        {
            ost = *m[ j ] % x;
 
            if( ost != 0 )
               m[ k++ ] = m[ j ];
            else if ( ost == 0 )
               m[ j ] = NULL;
        }
 
        while( k1 < k )
            cout << *m[ k1++ ];
 
        x++;
        r1 = k1;
        z++;
 
        cout << endl << k1;
    }
 
    getch();
 
    return 0;
}
Так не читабельнее?

Уважаемый ТС, если вы всё-таки рассчитываете получить ответ, скажите пожалуйста, что вы имели ввиду, когда писали сие безобразие?

Добавлено через 5 минут
При вводе l = 15, r = 16, сдохло на 38-й строчке оформленного кода (SIGSEGV)
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
01.09.2011, 17:58  [ТС]     Проблема с динамическим массивом #23
Есть задача:Мы вводим предели l и r.Затем у нас получаетса числовой отрезок[l;r](например r=2,l=10,то отрезок 2,3,4,5,6,7,8,9,10)затем мы длим каждое число на x=2,все што делитса на 2 без остачи то мы ето число удаляем,и переходим к следующому раунду,увеличивая x на 1.Для заданого отрезка требуетса найти наименьшее количество раундов.Например:
Раунд 1:2,3,4,5,6,7,8,9,10 /2
Раунд 2:3,5,7,9 /3
Раунд 3:5,7 /4
Раунд 4:5,7 /5
Раунд 5:7 /6
Раунд 6:7 /7
у нас не осталось ниодного числа значит игра окончена.
Пример ввода-вывода:2 10-Ввод.6-Вывод.
У меня получилась ета задача но не динамическим способом:
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
#include "stdafx.h"
#include<iostream>
#include<conio.h>
using namespace std;
int l,r,i=0,j=0,k=0,k1=0,k2=0,x=2,z=1;int ost;
int _tmain(int argc, _TCHAR* argv[])
{
    int m[10000],n[10000];int z1=1;
    cin>>l>>r;
    int r1=r-l;
    while(i<=r1)
    {
        m[i]=l;l++;i++;
    }
    while(z1>0)
    {
        k1=0;k=0;
        for(j=0,k=0;j<=r1;j++)
        {
         ost=m[j]%x;
         if(ost!=0)n[k++]=m[j];else if(!ost)m[j]=0;
        }
        while(k1<k)
        {
        m[k1+1]=n[k1];k1++;
        }
        x++;r1=k1;z++;z1=k1;
    }
    cout<<endl;
    cout<<z-1<<endl;
    getch();
    return 0;
}
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
01.09.2011, 19:08     Проблема с динамическим массивом #24
Все намного проще
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
#include <iostream>
#include <list>
 
class IsDivisible
{
 private:
   int div;
 
 public:
   IsDivisible(int div)
   {
      this->div = div;
   }
 
   bool operator() (const int& value) 
   {
      return !(value%div);
   }
};
     
int main()
{
   int left, right, i = 0, current;
   std::cin >> left >> right;
   current = 2;
   if(left > right)
      return -1;
   std::list<int> value;
   for(i = left; i <= right; ++i)
      value.push_back(i);
 
   i = 1;
   do
   {
      std::cout << "Round " << i << ": ";
      for (std::list<int>::iterator it = value.begin(); it != value.end(); ++it)
         std::cout << *it << ' ';
       std::cout << std::endl;
      value.remove_if(IsDivisible(current));
      ++i;
      ++current;
   } while (value.size()!= 0);
   --i;
 
   std::cout << "Total: " << i;
 
   return 0;
}
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
01.09.2011, 20:59  [ТС]     Проблема с динамическим массивом #25
Спасибо за етот способ,но я не очень еще умею описывать класси(ток теорию немного о них знаю)
пока ограничиваюсь функцией и динамикой.кстати у динамической версии тоже нашел ошыбку)

Добавлено через 1 час 40 минут
Кстати на ваш код тоже ошыбку выбивает типа cout не являетса обектом std
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
02.09.2011, 00:59     Проблема с динамическим массивом #26
KING1994, какая строчка, какая IDE?
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
02.09.2011, 14:07  [ТС]     Проблема с динамическим массивом #27
Предпоседняя строчка

Добавлено через 19 секунд
C++
1
std::cout << "Total: " << i;
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
02.09.2011, 14:14     Проблема с динамическим массивом #28
KING1994, а вы вручную перенабирали или копировали? Какая IDE?
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
02.09.2011, 14:17  [ТС]     Проблема с динамическим массивом #29
Конечно же копировал)ps што такое IDE?)
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
02.09.2011, 14:18     Проблема с динамическим массивом #30
KING1994, в какой среде вы программируете?

Интегрированная среда разработки
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
02.09.2011, 14:28  [ТС]     Проблема с динамическим массивом #31
Microsoft Visual studio 2010
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
02.09.2011, 14:31     Проблема с динамическим массивом #32
не должна там быть ошибка. Скопируйте текст из окна Output и выложите на форум
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
02.09.2011, 14:35  [ТС]     Проблема с динамическим массивом #33
Так што такое IDE?)текст щас выложу

Добавлено через 2 минуты
Щас уже пошло
C++
1
2
//
#include "StdAfx.h"
,ток вы забыли вставить.впрошлый раз вообще какойто бре выбивало.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2011, 14:39     Проблема с динамическим массивом
Еще ссылки по теме:

Работа с динамическим массивом С++ C++
Работа с динамическим массивом C++
Задание с динамическим массивом C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
02.09.2011, 14:39     Проблема с динамическим массивом #34
KING1994, я ничего не забывал, это хедер, который есть только в студии. У меня не студия и мне он не нужен.

Цитата Сообщение от KING1994 Посмотреть сообщение
Так што такое IDE?
я вам уже давал ссылку в этом посте
Yandex
Объявления
02.09.2011, 14:39     Проблема с динамическим массивом
Ответ Создать тему
Опции темы

Текущее время: 19:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru