Написать программу на с++ для нахождения минимального значения среди положительных и максимальное среди нечетных
106
280
Ответы на вопрос:
#include
using namespace std;
int main()
{
int n;
cin > > n;
int a[n];
for(int i=0; i
cin > > a[i];
// можно работать
int min=32767, max=-32768;
for(int i=0; i
{
if((a[i]> 0) & & (a[i]
min=a[i];
if((abs(a[i])%2! =0) & & (a[i]> max))
max=a[i];
}
cout < < "min = " < < min < < ", max = " < < max;
return 0;
}
R=a+b+c, где a=53₁₀, b=653₈, c=da₁₆, r=r₂ эту можно решать разными способами; выбор зависит от умения решающего выполнять сложение в той или иной системе счисления. но в любом варианте, сначала нужно представить а, в, с в какой-то одной системе счисления. посмотрим, как это будет выглядеть, если пользоваться привычной нам десятичной системой. 653₈ = 6·8²+5·8¹+3·8⁰ = 6·64+5·8+3 = 427 da₁₆ = 13·16¹+10·16⁰ = 218 r₁₀ = 53+427+218 = 698 переводим полученное число в двоичную систему, получая r₂: 698/2=349, остаток 0 349/2=174, остаток 1 174/2=87, остаток 0 87/2=43, остаток 1 43/2 =21, остаток 1 21/2=10, остаток 1 10/2=5, остаток 0 5/2=2, остаток 1 2/2=1, остаток 0 1/2=0, остаток 1 выписываем остатки в обратном порядке: 1010111010. это и есть ответ. а теперь допустим, что мы хорошо владеем восьмеричной системой счисления. 1) получим а₈ 53/8=6, остаток 5 6/8=0, остаток 6 выписываем остатки в обратном порядке: а₈=65 2) получим с₈, для чего перейдем сначала в двоичную систему с₂=1101 1010 (просто заменяем каждую цифру четырьмя двоичными). а теперь разобьем справа налево полученное значение по три разряда и каждую полученную триаду заменим восьмеричной цифрой. 11 011 010₂ = 332₈ 3) выполним сложение r₈=a₈+b₈+c₈ 65 740 +653 +332 740 1272 складывать в восьмеричной системе просто, если знать одну маленькую хитрость. 8 отличается от 10 на 2, поэтому и результат сложения в восьмеричной системе на 2 больше, чем в десятичной, если число превышает 7. смотрим: 5+3=8, но это в десятичной, а в восьмеричной это на 2 больше, т.е. 10. поэтому мы пишем 0 и +1 идет в следующий разряд. 6+5=11 и еще +1 от переноса, итого 12. но в восьмеричной на 2 больше, т.е. 14. 4 пишем. +1 перенос. 6 и +1 от переноса - 7. вот и получили 740. 4) мы нашли r₈, переходим к r₂. заменяем каждую восьмеричную цифру тремя двоичными: 1272₈=1 010 111 010₂ мы получили тот же ответ, что и в предыдущем способе расчета. так что - дело привычки. второй вариант кажется "непосвященному" сложнее, но на самом деле в нем меньше арифметики и если нет под рукой калькулятора, то может оказаться и быстрее, и удобнее. ответ: 1010111010
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
skyyymbria21.02.2021 05:41
-
ŤằтьЯℌa200527.02.2020 01:05
-
NoProblem7510.03.2023 13:34
-
magomedova1710205.09.2022 19:10
-
Дайяник13.04.2023 14:33
-
Alintos12211.12.2020 20:01
-
федот22817.07.2021 20:01
-
timofeyfrol14.02.2023 05:27
-
lordczar9521.12.2020 07:40
-
ДжастБодя12.03.2022 09:57
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.