М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Lizik741Limon
Lizik741Limon
06.08.2021 02:54 •  Информатика

Склавиатуры вводится число, состоящее не более чем из 200 цифр. найти кол-во нечетных цифр данного числа

👇
Ответ:
КИСА010
КИСА010
06.08.2021
Идея простая: Вводится не ЧИСЛО, а СТРОКА, состоящая из цифр.
Эту строку можно представить как МАССИВ символов и обращаться к ним как к элементам массива.
В цикле при обращении к очередному элементу массива при оператора VAL превращаем символ в число и анализируем его на нечетность и если оно нечетно прибавляем его к сумме нечетных.

Вот и весь алгоритм.
4,7(70 оценок)
Открыть все ответы
Ответ:
#include <stdio.h>
#include <iostream>
#include <malloc.h>
const int N = 10;
int main()
{
setlocale(LC_ALL, "RUS");
int i, j=0, n=0;
int array[N];
int *a;
puts("Исходный массив:");
for (i=0; i<N; i++) {
printf("Введите %d элемент:", i);
scanf("%d", &array[i]);
}
system("cls");
puts("Исходный массив:");
for (i=0; i<N; i++) {
printf("%d ", array[i]);
}
printf("\n");
for (i=0; i<N; i++)
if (array[i] == 0)
n++;
printf("Новый массив:\n");
a = (int *)malloc(n*sizeof(int));
for (i=0; i<N; i++)
  if (array[i] == 0) {
    a[j] = i;
    printf("%d ", a[j]);
    j++;
  }
free(a);
printf("\n");
system("pause");
return 0;
}

Тестовое решение:
Исходный массив:
5 0 3 6 0 0 2 1 0 5
Новый массив:
1 4 5 8
Для продолжения нажмите любую клавишу . . .
4,4(21 оценок)
Ответ:
kriss200900
kriss200900
06.08.2021
В Паскале есть стандартная функция Pos, которая возвращает начальную позицию вхождения подстроки в строку или 0, если такое вхождение не обнаружено. С её данная задача решается очень просто.

var
  s:string;
  ip,iv:integer;
begin
  Write('Введите строку: '); Readln(s);
  ip:=Pos('П',s); iv:=Pos('В',s);
  if ip*iv=0 then Writeln('П или В или обе не найдены в тексте')
  else
    if ip<iv then Writeln('П встретилось раньше В')
    else Writeln('В встретилось раньше П')
end.

Тестовое решение:
Введите строку: НА ЛУГУ ПАСЕТСЯ КОРОВА
П встретилось раньше В
4,7(99 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ