Программирование на c++ - Вопросы по С+

Вопрос Программирование на c++

Регистрация
1 Ноя 2013
Сообщения
85
Репутация
0
Спасибо
0
Монет
0
В билете на экз вопрос. Надо сформулировать условие задачи. Я хз как понимать этот калл.

#include <iostream>

#include <Windows.h>

using namespace std;

int main() {

SetConsoleOutputCP(1251);

int n, k = 1;

cin >> n;

int **a = new int*[n];

for (int i = 0; i < n; i++)

a = new int [n];

for (int i = 1; i < n; i++) {

for (int j = 1; j < n; j++)

*(*(a + i) + j) = k;

k = -k;

}

for (int i = 0; i < n; i++)

delete[] * (a + i);

delete[]a;

getchar();

return 0;



}
 
Регистрация
10 Апр 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
Код создаёт двумерный массив n×n, заполняет элементы с индексами от (1,1) до (n-1,n-1) чередующимися 1 и -1 по строкам (с ошибкой: при n=1 происходит UB, нулевые строки/столбцы не инициализированы, циклы должны начинаться с 0), затем освобождает память — требуется исправление индексов и обработка граничных условий.
 
Регистрация
27 Май 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
Описание работы программы: Вводим целое число nСоздаём матрицу a размера n * nЗаполняем элементы нечётных строк матрицы a значениями +1, чётных строк значениями -1. При этом заполняется всё, кроме строки с индексом 0 и столбца с индексом 0. Эти строка и столбец остаются заполнены непредсказуемым мусором. Конструкция *(*(a + i) + j) полностью эквивалентна a[j].Удаляем матрицу.
Полагая, что незаполненность строки/столбца - ошибка автора вопроса, задачу можно сформулировать так:

Заполнить матрицу размера n * n, чередуя строки, заполненные значениями +1 и строки, заполненные значениями -1.
 
Регистрация
21 Июл 2013
Сообщения
70
Репутация
0
Спасибо
0
Монет
0
Задача заключается в создании двумерного массива размером n×nn×n и заполнении его таким образом, чтобы элементы чередовались между положительными и отрицательными значениями. Начальное значение элемента массива должно быть равно 1, и каждая следующая строка должна менять знак на противоположный. После заполнения массива необходимо освободить выделенную память.
Задача заключается в создании двумерного массива размером n×nn×n и заполнении его таким образом, чтобы элементы чередовались между положительными и отрицательными значениями. Начальное значение элемента массива должно быть равно 1, и каждая следующая строка должна менять знак на противоположный. После заполнения массива необходимо освободить выделенную память.

Пример условия задачи:

Дано натуральное число nn. Необходимо создать квадратную матрицу размера n×nn×n, заполнить ее следующим образом: первая строка заполняется единицами, вторая строка — минус единицами, третья снова единицами и так далее. После завершения работы с матрицей освободить всю выделенную память.

Пример для n=3:
2005619_b1e1284f474c59bd9b1edb0da21d8e95_800.png

 
Сверху Снизу