Заполнить массив 5х5 единицами и нулями в случайном порядке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

заполнить массив 5х5 единицами и нулями в случайном порядке и проверить существует ли связь через единицы от верхней строки массива до нижней. Помогите пожалуйста срочно

Решение задачи: «Заполнить массив 5х5 единицами и нулями в случайном порядке»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define SIDE 5
 
typedef char cell_t;
typedef cell_t board_t[SIDE][SIDE];
 
void init_board(board_t board) {
    int i, j;
    for ( i = 0; i < SIDE; ++i )
        for ( j = 0; j < SIDE; ++j )
            board[i][j] = rand() & 1;
}
 
void dump_board(board_t board) {
    int i, j;
    for ( i = 0; i < SIDE; ++i ) {
        for ( j = 0; j < SIDE; ++j )
            printf("%2d ", board[i][j]);
        printf("\n");
    }
}
 
int find_path(board_t board, int row, int column) {
    if ( row >= 0 && row < SIDE && column >= 0 && column < SIDE && board[row][column] > 0 ) {
        board[row][column] *= -1;
        if ( row == SIDE - 1 )
            return 1;
        else {
            int found = ( find_path(board, row + 1, column) || find_path(board, row, column + 1) || find_path(board, row, column - 1) || find_path(board, row - 1, column) );
            if ( ! found )
                board[row][column] *= -1;
            return found;
        }
    }
    else
        return 0;
}
 
int main(void) {
    board_t board;
    int start;
    
    srand(time(NULL));
    init_board(board);
    
    printf("Board:\n");
    dump_board(board);
    
    for ( start = 0; start < SIDE && ! find_path(board, 0, start); ++start )
        ;
    if ( start == SIDE )
        printf("NO WAY!\n");
    else {
        printf("Path:\n");
        dump_board(board);
    }
    
    return 0;
}

Объяснение кода листинга программы

В этом коде заполняется массив 5х5 единицами и нулями в случайном порядке, выводится на экран, затем проходит по всем возможным путям в поисках пути от левого верхнего угла к правому нижнему, если такой путь найден, то он выводится на экран, иначе выводится сообщение NO WAY!

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы