Организовать квадрат из единиц в двумерной матрице - C (СИ)
Формулировка задачи:
Задали юнит-тест к dll'ке написать. Суть функции заключается в том, что она должна в матрице образовать квадрат из единиц по заданным координатам горизонтали, вертикали левого верзнего угла квадрата и длины стороны квадрата. Но моя аналогичная функция даже саму матрицу не изменяет(все значения после окончания функции остаются равны крайнему порогу значения int)...и в чем дело не пойму=(. Вот собственно код!
#include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { int matr[30][30]; int sizeofsquare; int indexofcornerH; int indexofcornerW; int Hor; int Wer; scanf ("%d", &sizeofsquare); scanf ("%d", &indexofcornerH); scanf ("%d", &indexofcornerW); Hor=indexofcornerH+sizeofsquare; Wer=indexofcornerW+sizeofsquare; for (int i=indexofcornerH;i<Hor;i++) { for (int j=indexofcornerW;j<Wer;j++) { if (i==indexofcornerH || j==indexofcornerW || i==Hor || j==Wer) { matr[i][j]=1; } else { matr[i][j]=0; } } } for (int i=0;i<30;i++) { for (int j=0;j<30;j++) { printf ("%d", matr[i][j]); } printf ("\n"); } return 0; }
Решение задачи: «Организовать квадрат из единиц в двумерной матрице»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(int argc, char* argv[]) { srand(time(NULL)); const int H = 10; const int W = 10; int matr[H][W]; int i, j; for (i = 0; i < H; ++i) { for (j = 0; j < W; ++j) printf("%4d", matr[i][j] = 100 + rand() % 100); printf("\n"); } int y = rand() % H / 2; int x = rand() % W / 2; int side = rand() % (((H < W) ? H : W ) / 2) + 2; printf("At (y = %d / x = %d), side: %d\n", y, x, side); for (i = y; i < y + side; ++i) for (j = x; j < x + side; ++j) matr[i][j] = 0; matr[y][x] = matr[y + side - 1][x] = matr[y][x + side - 1] = matr[y + side - 1][x + side - 1] = 1; for (i = 0; i < H; ++i) { for (j = 0; j < W; ++j) printf("%4d", matr[i][j]); printf("\n"); } return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с стандартными функциями, генерацией случайных чисел и временем.
- Определяем константы H и W для размера матрицы.
- Создаем двумерный массив matr размером H x W и инициализируем его нулями.
- Заполняем матрицу случайными единицами, кроме выделенного квадрата.
- Выделяем квадрат в матрице, используя случайные координаты y и x, а также случайную сторону side.
- Устанавливаем значения выделенного квадрата равными единице.
- Выводим матрицу на экран.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д