Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
6 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
1

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

31.08.2011, 19:39. Показов 2303. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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 все пашет отлично почему?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.08.2011, 19:39
Ответы с готовыми решениями:

Проблема с динамическим массивом С++
Есть задача: Дан Двумерный массив целых чисел. В каждой его строке найти: а) сумму отрицательных...

Проблема с динамическим массивом
Когда расширяется массив в первое поле первого элемента структуры вносятся изменения( появляются...

Работа с динамическим массивом
Помогите, пожалуйста. В чем проблема? Компилирует, но выполнять не хочет. Надо вставить элемент в...

Работа с динамическим массивом
Дано: динамический двумерный массив. Определить сумму всех элементов (с помощью функции, массив и...

33
Заблокирован
Автор FAQ
01.09.2011, 14:39 21
Author24 — интернет-сервис помощи студентам
Теперьменее скептически к коду ТС отношусь, но запись такая что чёрт ногу сломит, думаю есть более приемлеммые способы инициализации и организации памяти.
Всё же надеюсь ТС даст описание работы алгоритма, чтобы ориентироваться не только на его логику можно было!
0
794 / 546 / 61
Регистрация: 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)
0
6 / 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;
}
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
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;
}
1
6 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
01.09.2011, 20:59  [ТС] 25
Спасибо за етот способ,но я не очень еще умею описывать класси(ток теорию немного о них знаю)
пока ограничиваюсь функцией и динамикой.кстати у динамической версии тоже нашел ошыбку)

Добавлено через 1 час 40 минут
Кстати на ваш код тоже ошыбку выбивает типа cout не являетса обектом std
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
02.09.2011, 00:59 26
KING1994, какая строчка, какая IDE?
0
6 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
02.09.2011, 14:07  [ТС] 27
Предпоседняя строчка

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

Интегрированная среда разработки
0
6 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
02.09.2011, 14:28  [ТС] 31
Microsoft Visual studio 2010
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
02.09.2011, 14:31 32
не должна там быть ошибка. Скопируйте текст из окна Output и выложите на форум
0
6 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
02.09.2011, 14:35  [ТС] 33
Так што такое IDE?)текст щас выложу

Добавлено через 2 минуты
Щас уже пошло
C++
1
2
//
#include "StdAfx.h"
,ток вы забыли вставить.впрошлый раз вообще какойто бре выбивало.
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
02.09.2011, 14:39 34
KING1994, я ничего не забывал, это хедер, который есть только в студии. У меня не студия и мне он не нужен.

Цитата Сообщение от KING1994 Посмотреть сообщение
Так што такое IDE?
я вам уже давал ссылку в этом посте
1
02.09.2011, 14:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2011, 14:39
Помогаю со студенческими работами здесь

Странность с динамическим массивом
Меня в тупик поставило следующая ошибка (&quot;Название исполняемого файла&quot; has triggered a breakpoint.)...

Класс с динамическим массивом
доброго времени суток! помогите мне немножко: создать клас vector для сохранения массиву,...

Сортировки слиянием с динамическим массивом
Добрый вечер! мне нужно отсортировать массив слиянием с динамическим массивом помогите...

Возникнут ли последствия с динамическим массивом?
Если в программе не задается размер массива (строка) и пользователю не подается запрос на...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru