Дмитрий_Евлампиев518
?>

Напишите программу, которая в последовательности целых чисел определяет количество четных отрицательных чисел. программа получает на вход целые числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0-признак окончания ввода, не входит в последовательность количество чисел не превышает 1000. введенные числа не превышают 30 000. программа должна вывести одно число: количество четных отрицательнх чисел пример работы программы входные данные -17 2 -6 0 выходные данные 1 с

Информатика

Ответы

yulyazhdan
#include <stdio.h>
#include <stdlib.h>
#include <locale>

int main()
{
    setlocale(LC_ALL, "RUS");
    int count = 0;
    int n;
    for (int i = 0; i < 1000; i++)
    {
        printf("Введите число >> ");
        scanf("%d", &n);
        if (n == 0)
            break;
        if (n % 2 == 0 && n < 0)
            count++;
    }
    printf("%d", count);
}
phiskill559
Ну смотри, есть такая формула что ли..
У - узел
М - маска
С - сеть
Нам известен узел - это 200.15.100.23
Нам известен адрес сети - это 200.15.96.0
Маска неизвестна. Если в маске стоит 255 - то число остается тоже самое:
У - 200.15.100.23
М- 255.255.Х.0
С - 200.15.96.0
Нам нужно найти НАИМЕНЬШЕЕ возможное значение третьего слева байта маски, его обозначила за Х выше.
Переведем 100 и 96 в двоичную систему счисления и получим:
100 - 1100100
96 - 1100000
Т.к в маске 8 разрядов, то перед каждым полученным числом в двоичной системе счисления поставим 0.
Получим:
01100100 - у 
xxxxxxxx - м
01100000 - с
Сделаем побитовое перемножение с конца. Запомним, что в маске идут сначала все нули, а затем единицы.
01100100 - узел. Его умножаем на маску
11100000 - маска.
01100000 - сеть. Получаем ее после перемножения узла на маску.
Перемножили, получили маску - 11100000.
Возвращаемся к вопросу задачи: Чему равно наименьшее возможное значение третьего слева байта маски?
Тут все просто, осталось перевести маску из двоичной СС в десятичную СС.
Расставим степени двойки над маской
76543210
11100000
2^{7} + 2^{6} + 2^{5} = 128 + 64 + 32 = 224, что и является верным ответом.
Если остались вопросы - задавай в комментариях, отвечу.
Викторовна
Const Sz = 100; // Размер массива

var
a: array [1..Sz] of integer;
N: integer; // Количество элементов в массиве
i,k: integer;
min,max: real;
begin
k:=0;
N:= 10;
for i:=1 to N do begin
read(a[i]);
k:=k+a[i];
end;
write('Вывод элементов массива: ');
for i:=1 to N do
write(a[i],' ');
min := a[1];
for i:=2 to N do
if a[i]<min then
begin
min := a[i];
end;
max := a[1];
for i:=2 to N do
if a[i]>max then
begin
max := a[i];
end;
writeln('max=',max,' ','min=', min,' ','Средная температура=',k/N)
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Напишите программу, которая в последовательности целых чисел определяет количество четных отрицательных чисел. программа получает на вход целые числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0-признак окончания ввода, не входит в последовательность количество чисел не превышает 1000. введенные числа не превышают 30 000. программа должна вывести одно число: количество четных отрицательнх чисел пример работы программы входные данные -17 2 -6 0 выходные данные 1 с
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

mausgaly
khvorykhphoto
Vyacheslavovich1431
vis-lyubov8832
houseoftorture138
Zhanna417
Zimin1111
pronikov90
atamanov5
triumfmodern
oksit
Lapushkin1988
burtsev3339
Vladimirovich1898
Середа-Сергеенков980