Настенька192002
09.04.2020 02:10

Дано послідовність з n цілих чисел. Знайти суму всіх елементів даної послідовності та порахувати кількість елементів, які непарні. ( в програмі C++ )
дано последовательность из n целых чисел. Найти сумму всех элементов данной последовательности и посчитать количество элементов, которые нечетные.
( в программе C++)​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
superM228228
17.04.2022 20:06

#include <iostream>

using namespace std;

int main()

{

   int N; cin >> N;

   int list[N];

   int a = 0;

   while (a < N)

   {

       int n; cin >> n;

       list[a] = n;

       a ++;

   }

   int flag_2 = 0;

   a = 0;

   while (a < N)

   {

       int b = 0;

       int flag = 0;

       while (b < N)

       {

           if (list[a] == list[b])

           {

               flag ++;

               flag_2 ++;

           }

           b ++;

       }

       if (flag > 1) cout << list[a] << " ";

       a ++;

   }

   if (flag_2 <= N) cout << 0;

}

1) ответ выводится не списком, а просто отдельными числами через пробел

2) каждое повторяющееся число выводится несколько раз(столько, сколько встречается)

3) в конце вывода лишний пробел

Могу решить на пайтоне, если важно просто закрыть задачу. А так, судя по всему, решение только массивами требует более глубоких знаний(динамические массивы и векторы), чем есть у меня в с++. Возможно, сможете улучшить мое решение

(кинул бы в комментарии, но там ограничение на кол-во символов)

0,0(0 оценок)
Ответ:
Vikusyadubenko
05.07.2022 00:02
PROGRAM B01;

CONST
    max = 11;
TYPE
    vector = array[1..max]of integer;
VAR
    M, I, K:vector;
    j:byte;

{ Массивы I,K предварительно реорганизовать следующим образом: на первом
месте, в данных массивах должен стоять элемент с минимальным значением}
procedure reorganize_vector(var vt:vector);
var   i, j:byte;
      min, tmp:integer;
      
begin
  // вначале ищем минимальный элемент и запоминаем его место в массиве
  j:=1;//
  min:=vt[1];//назначаем наименьшим - первый элемент
  for i:=2 to max do
    if (min>vt[i]) then begin
      min:=vt[i];
      j:=i;//индекс наименьшего числа
    end;
    
  // теперь меняем местами первый элемент массива с наименьшим числом
  tmp := vt[1];//запоминаем значение первого элемента
  vt[1] := min;//меняем его на наименьший элемент
  vt[j] := tmp;//на место наименьшего ставим значение из первого элемента
end;

// процедура для вывода массива на экран
procedure print_vector(var vt:vector);
var j:byte;
begin
  for j:=1 to max do
    write(vt[j]:6);
  writeln(' ');
end;

BEGIN
  writeln('Дано:');

  //заполняем массивы случаынйми данными
  randomize;
  for j:=1 to max do begin
    I[j]:=random(-128,127);  
    K[j]:=random(-128,127);  
  end;

  //выводим их на экран
  write('массив I[',max,']: ');
  print_vector(I);
  write('массив K[',max,']: ');
  print_vector(K);

  writeln(' ');
  writeln('Реорганизовать массивы так, чтобы на первом месте ');
  writeln('должен стоять элемент с минимальным значением');

  reorganize_vector(I);
  reorganize_vector(K);

  write('массив I[',max,']: ');
  print_vector(I);
  write('массив K[',max,']: ');
  print_vector(K);

  writeln(' ');
  writeln('Сформировать массив М[',max,'], элементы которого вычисляются');
  writeln('по формуле M[j] = I[j] + K[j]');

  for j:=1 to max do
    M[j] := I[j] + K[j];

  write('массив M[',max,']: ');
  print_vector(M);
END.

На паскале написать программу с подпрограммой. дано: массивы i(11), k(11). сформировать массив м (11
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота