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

Почему в динамическом массиве не работает то, что работает со статическим? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить средний балл и вывести соответствующий цвет диплома http://www.cyberforum.ru/cpp-beginners/thread769858.html
Доброго времени суток уважаемые форумчане. Я учусь на заочке. Вот такая задачка 1 курса. Столько то студентов, оценки 3,4,5. Написать прогу, чтобы сама вычисляла средний бал и автоматом выводила цвет диплома(красный или синий). Я написал работающую прогу. Всё она показывает, только по условию необходимо для красного диплома, чтобы у студента было не больше двух четвёрок. Это у меня пока не...
C++ Тестовое меню Привет. Есть ядро программы. Классы СТРОКА, ИДЕНТИФИКАТОР, ДЕСЯТИЧНАЯ СТРОКА. Необходимо: Написать тестовую программу, которая: * динамически выделяет массив указателей на базовый класс (4-6 шт.); * в режиме диалога заполняет этот массив указателями на производные классы, при этом экземпляры производных классов создаются динамически с заданием начальных значений; * для созданных... http://www.cyberforum.ru/cpp-beginners/thread769843.html
Иерархия классов , списки C++
Добрый день. Есть три класса , Stud, Group из студентов , и Facultet из групп. Пытаюсь решить задачу перевода указанного списка студентов. Каждый элемент списка содержит Фио , название прежней и название новый группы. Я сделал так , создал группу в которую просто добавлял студентов которых надо перевести , потом эту группу добавлял в одну из существующих , но преподавателю так не понравилось....
Excel/Vba: Как внутри кавычек использовать кавычки C++
MsgBox '''' = '
C++ Указатели и масивы http://www.cyberforum.ru/cpp-beginners/thread769822.html
Добрый день. Помогите пожалуйста разобраться с указателями. Есть рабочий код: const int n=5; int a ; int k=1; for (int i=0;i<n;i++)
C++ Как восстановить заголовочный файл sal.h? При компиляции выскакивали ошибки, связанные с sal.h. Я удалила его подчистую, теперь выдаются ошибки в math. h и не компилируется вообще ничего. Перезагрузить Визуал Студио не помогает. Где отыскать код этого файла и вообще, что можно сделать? Спасибо. подробнее

Показать сообщение отдельно
KObotan
0 / 0 / 0
Регистрация: 20.10.2010
Сообщений: 21
23.01.2013, 16:44     Почему в динамическом массиве не работает то, что работает со статическим?
Программа зависает
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
#include<iostream>
#include<stdlib.h>
#include<time.h>
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    int n;
    cout<<"Enter n:";
    cin>>n;
    
    int **mass=new int*[n];
    for(int i=0; i<n; i++)
    {
    mass[i]=new int[n];
    }
    
    
    
    for(int i=0; i<n; i++)
    {
            for(int j=0; j<n; j++)
            {
            mass[i][j]=0;
            }
    }
    
 
    int k=1, l=1, y=0, x=0;
    for(int i=1; i<n*n+1; i++)
    {
    mass[y][x]=i;
    y+=k;
    x+=l;
     
    while((mass[y][x]!=0)||(x==n)||(y==n))
                   {
                   if(mass[y][x]!=0)
                   {
                   y-=k, x-=l;
                   y++;
                   }
                   if(x==n){x=0;}
                   if(y==n){y=0;}
                   }
    }
    
    for(int i=0; i<n; i++)
    {
            for(int j=0; j<n; j++)
            {
            cout<<mass[i][j]<<"\t";
            }
            cout<<endl<<endl<<endl;
    }
    
    system("pause");
    return 0;
}
Но если я делаю массив статическим, всё работает.
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
#include<iostream>
#include<stdlib.h>
#include<time.h>
 
#define n 5
 
using namespace std;
 
int main()
{
    int mass[n][n];
    
    for(int i=0; i<n; i++)
    {
            for(int j=0; j<n; j++)
            {
            mass[i][j]=0;
            }
    }
    
 
    int k=1, l=1, y=0, x=0;
    for(int i=1; i<n*n+1; i++)
    {
    mass[y][x]=i;
    y+=k;
    x+=l;
     
    while((mass[y][x]!=0)||(x==n)||(y==n))
                   {
                   if(mass[y][x]!=0)
                   {
                   y-=k, x-=l;
                   y++;
                   }
                   if(x==n){x=0;}
                   if(y==n){y=0;}
                   }
    }
    
    for(int i=0; i<n; i++)
    {
            for(int j=0; j<n; j++)
            {
            cout<<mass[i][j]<<"\t";
            }
            cout<<endl<<endl<<endl;
    }
    
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru