Предмет: Информатика,
автор: cimuzoro
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;
}
Ответы
Автор ответа:
0
Ответ: 17
// delete.cpp: определяет точку входа для консольного приложения.//
#include "stdafx.h"#include "iostream"#include <conio.h>
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;}
// delete.cpp: определяет точку входа для консольного приложения.//
#include "stdafx.h"#include "iostream"#include <conio.h>
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;}
Похожие вопросы
Предмет: Информатика,
автор: wlsdd
Предмет: Математика,
автор: rita26romanova
Предмет: Английский язык,
автор: Аноним
Предмет: Математика,
автор: люда142
Предмет: Математика,
автор: meganfoxx