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

Второй день не могу заменить объявление массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В чем ошибка? http://www.cyberforum.ru/cpp-beginners/thread968274.html
#include <cstdlib> #include <iostream> using namespace std; struct Time { int h; int m; };
C++ Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. Ребят , помогите плиз , послезавтра экзамен , вот нашел возможные задание , может кто подсказать , или показать решения ? Язык : С++/ паскаль. Заранее спасибо. №1 Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. написать программу. http://www.cyberforum.ru/cpp-beginners/thread968269.html
C++ Нужно оптимизировать код
Вобщем код не принемает сайт, немного нагружает и по времени не проходит задание Август и Беатриса играют в игру. Август загадал натуральное число от 1 до n. Беатриса пытается угадать это число, для этого она называет некоторые множества натуральных чисел. Август отвечает Беатрисе YES, если среди названных ей чисел есть задуманное или NO в противном случае. После нескольких заданныъх вопросов...
C++ Странная ошыбка
Всём привет Есть такая проблема: при использовании qsort(&c, c.size(), sizeof(int), compare) Кидает ексепшен, почёму понять не могу. Вот весь код: #include <iostream> #include <vector> int compare(const void* a, const void* b) { return ( *(int*) a - *(int*)b );
C++ Работа со структурой данных, чтение/сохранение во внешний файл http://www.cyberforum.ru/cpp-beginners/thread968244.html
помогите разобраться с задачкой!! {Написать программу, представляющую собой простейшую систему для управления данными. Исходные данные для программы хранятся в текстовом файле в виде строк. Для создания файла с исходными данными следует использовать простейший текстовый редактор или редактор инструментальной среды разработки. Количество строк, требования к содержимому строки, способ...
C++ В числе зачеркнули первую справа цифру и приписали ее слева - вывести полученное число #include <iostream> #include <stdio.h> #include <math.h> #include <conio.h> int main(int argc, char** argv) { float d,c; int b,a; printf ("vvedite trhznachnoe chislo "); подробнее

Показать сообщение отдельно
kondusov
2 / 2 / 0
Регистрация: 01.06.2013
Сообщений: 152
03.10.2013, 18:44     Второй день не могу заменить объявление массива
вот, собственно код программы с условием. прог откомпилирована и работает отлично. но преподаватель не принимает её,т.к. память под двумерный массив надо объявить динамически (new). Пробовал объявлять на том же месте таким способом
C++
1
2
3
4
5
6
7
8
int **a;
    a=new int*[ROWS];
    for (int i=0;i<ROWS;i++)
    {a[i]=new int[COLUMNS];}
    cout<<"vvedite elem matrici";
    for (int i=0;i<ROWS;i++)
        for (int j=0;j<COLUMNS;j++)
            cin>>a[i][j];
ничего не получается. все функции сбиваются и не работают с этим массивом. Как быть? как заменить статику на динамику?

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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
/*
стр 98 (100) зад 31
 
Определить, образуют ли элементы матрицы упорядоченную последовательность
при обходе матрицы: a) змейкой, b) спиралью
 
*/
 
#include <stdio.h>
 
#define ROWS 6
#define COLUMNS 5
 
static int a[ROWS][COLUMNS] = {
        { 1,  2,  3,  4,  5},
        {18, 19, 20, 21,  6},
        {17, 28, 29, 22,  7},
        {16, 27, 30, 23,  8},
        {15, 26, 25, 24,  9},
        {14, 13, 12, 11, 10}
};
 
 
static void print_matrix(void)
{
    int i, j;
    
    for(i = 0; i < ROWS; i++) {
        for (j = 0; j < COLUMNS; j++) {
            printf("%2d ", a[i][j]);
        }
        printf("\n");
    }
    printf("\n");
}
 
/*
  Функция проверки условия упорядоченности. Она вызывается
  для каждого элемента при обходе матрицы. Если возвращает 0, то
  упорядоченность не нарушена и можно идти дальше, если 1, то "стоп",
  упорядоченность нарушена
*/
 
static int next(int e)
{
    static int prev, state = 0;
    
    switch (state) {
        case 0: /* No previous elem */
            state = 1;
            break;
        case 1: /* Determine order type: ascending or descending */
            if (e < prev)
                state = 2;
            else if (e > prev)
                state = 3;
            break;
        case 2: /* Descending order */
            if (e > prev)
                return 1; /* Stop */
            break;
        case 3: /* Ascending order */
            if (e < prev)
                return 1; /* Stop */
            break;
        default:
            break;
    }
    prev = e;
    return 0; /* Go ahead */
}
 
 
/* Обходим матрицу спиралью */
 
static int spiral(void)
{
    int i, row1 = 0, row2 = ROWS - 1, col1 = 0, col2 = COLUMNS - 1;
    
    printf("Spiral: ");
    
    while (row1 <= row2) {
        /* Слева направо */
        for (i = col1; i <= col2; i++) {
            if (next(a[row1][i]))
                goto out_of_order;
            printf("%2d, ", a[row1][i]);
        }
    
        /* Сверху вниз */
        for (i = row1 + 1; i < row2; i++) {
            if (next(a[i][col2]))
                goto out_of_order;
            printf("%2d, ", a[i][col2]);
 
        }
    
        /* Справа налево */
        for (i = col2; i >= col1; i--) {
            if (next(a[row2][i]))
                goto out_of_order;
            printf("%2d, ", a[row2][i]);    
        }
        
        /* Снизу вверх */
        for (i = row2 - 1; i > row1; i--) {
            if (next(a[i][col1]))
                goto out_of_order;
            printf("%2d, ", a[i][col1]);
        }
        row1++;
        row2--;
        col1++;
        col2--;
    }
    printf("\n\n");
    return 0;
    
out_of_order:
    printf("Out of order\n");
    return -1;
}
 
/* Обходим матрицу змейкой */
 
static int snake(void)
{
    int i, j;
    
    printf("Snake: ");
    for (j = 0; j < COLUMNS; j++) {
        if (j & 1) {
            for (i = ROWS-1; i >= 0; i--) {
                printf("%2d, ", a[i][j]);
                if (next(a[i][j]))
                    goto out_of_order;
            }
        } else {
            for (i = 0; i < ROWS; i++) {
                printf("%2d, ", a[i][j]);
                if (next(a[i][j]))
                    goto out_of_order;
            }
        }
    }
    printf("\n\n");
    return 0;
    
out_of_order:
    printf("Out of order\n");
    return -1;
}
 
 
int main(void)
{
    print_matrix();
    snake();
    spiral();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru