Вопрос по информатике:
НА ЯЗЫКЕ С++ В торговом центре этажи нумеруются так: …, –3, –2, –1, 1, 2, 3, … (нулевого этажа нет!). Вася спустился на лифте с этажа с номером A на B этажей, а затем поднялся на лифте на C этажей. Требуется определить, на каком этаже он оказался.
- 06.09.2018 23:30
- Информатика
- remove_red_eye 18667
- thumb_up 30
Ответы и объяснения 1
Можно и короче, но так нагляднее:
#include
#include
using namespace std;
int main() {
const int n=6;
int a;
int b;
int c;
int arr[n]={-3, -2, -1, 1, 2, 3};
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
srand(time(0));
a = rand() % 6;
cout << "(" << a << ")" << " a = " << arr[a] << endl;
if (a != 0) b = rand() % a; else b=0;
cout << " b = " << b << " (" << arr[a-b] << " этаж)" << endl;
if ((n-a+b) != 0) c = rand() % (n-a+b); else c=0;
cout << " c = " << c << " (" << arr[a-b+c] << " этаж)" << endl;
}
Пример:
-3 -2 -1 1 2 3
(5) a = 3
b = 4 (-2 этаж)
c = 2 (1 этаж)
Если этажей может быть много (до 100), то подробное решение может быть таким:
#include
#include
using namespace std;
int main() {
int n, n1, a, b, c;
int a1, a2, a3;
srand(time(0));
n = (rand() % 50 + 1)*2;
n1 = n/2;
cout << " n = " << n << " (" << -n1 << " ... " << n1 << ")" << endl;
a1 = rand() % n;
a = a1-n1;
if (a <= 0) a--;
cout << " a = " << a << endl;
b = rand() % a1;
a2 = a1-b-n1;
if (a2 <= 0) a2--;
cout << " b = " << b << " (" << a2 << " этаж)" << endl;
if ((n-a1+b) != 0) c = rand() % (n-a1+b); else c=0;
a3 = a1-b+c-n1;
if (a3 <= 0) a3--;
cout << " c = " << c << " (" << a3 << " этаж)" << endl;
}
Пример:
n = 96 (-48 ... 48)
a = -38
b = 9 (-47 этаж)
c = 83 (37 этаж)
- 07.09.2018 09:04
- thumb_up 6
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.