35 БАЛЛОВ ЗА ЗАДАЧКУ ПО ИНФОРМАТИКЕ!!! Имеется глобальный символьный двумерный массив...

0 голосов
40 просмотров

35 БАЛЛОВ ЗА ЗАДАЧКУ ПО ИНФОРМАТИКЕ!!!
Имеется глобальный символьный двумерный массив m(6x6), у которого индексация строк и столбцов начинается с 0. Глобальная целочисленная переменная count_ изначально равна нулю. Код функции find_p() написан на языке C++. Чему будет равно значение глобальной переменной count_ после вызова функции с параметрами (0, 0), то есть find_p(0, 0)?

Массив:

S . . . # #
# . # . . .
. . # . . #
. . # # # .
# . . . # #
# # # . . F

Код функции:

find_p(int x, int y) {
if (x < 0 || x > 5 || y < 0 || y > 5) return 0;
if (m[y] [x] == 'F') return 1;
if (m[y] [x] != '.' && m[y] [x] != 'S') return 0;
m[y] [x] = '+';
count_++;
if (find_p (x, y - 1)) return 1;
if (find_p (x + 1, y)) return 1;
if (find_p (x, y + 1)) return 1;
if (find_p (x - 1, y)) return 1;
m[y] [x] = 'x';
return 0;
}


Информатика (41 баллов) | 40 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Ответ:  17

// delete.cpp: определяет точку входа для консольного приложения.//
#include "stdafx.h"#include "iostream"#include
using namespace std;
int count_ = 0;
char m[6][6] = {{'S', '.', '.', '.', '#', '#'},{ '#', '.', '#', '.', '.', '.' },{ '.', '.', '#', '.', '.', '#' },{ '.', '.', '#', '#', '#', '.' },{ '#', '.', '.', '.', '#', '#' },{ '#', '#', '#', '.', '.', 'F' }};
int find_p(int x, int y) {if (x < 0 || x > 5 || y < 0 || y > 5) return 0;if (m[y][x] == 'F') return 1;if (m[y][x] != '.' && m[y][x] != 'S') return 0;m[y][x] = '+';count_++;if (find_p(x, y - 1)) return 1;if (find_p(x + 1, y)) return 1;if (find_p(x, y + 1)) return 1;if (find_p(x - 1, y)) return 1;m[y][x] = 'x';return 0;}

int main(){find_p(0, 0);cout << count_; //вывод_getch(); // задержка    return 0;}<br>

(200 баллов)