cardiodoc08
?>

Ввести с клавиатуры одномерный массив, состоящий из 10 элементов и записать сначала все элементы кратные 5, а затем все оставшиеся. на экран вывести исходный и новый массивы в две строки. отсортировать новый массив методом «пузырька». вывести отсортированный массив на экран.

Информатика

Ответы

Pervosha
Var begin j:=0; for i:=1 to 10 do read(a[I]); for i:=1 to 10 do if a[i] mod 5=0 then begin j:=j+1; b[j]:=a[i]; end; for i:=1 to 10 do if a[i] mod 5<>0 then begin j:=j+1; b[j]:=a[i]; end; For i:=1 to j do write(a[i],` `); Writeln(); For i:=1 to j-1 do For c:=j-1 downto i do If b[c]>b[c+1] do begin k:=b[c]; B[c]:=b[c+1]; B[c+1]:=k; end; For i:=1 to j do write(b[i],` `); End.
Liliya_Ivanova

using System;

using System.Linq;


class Program {

 static void Main() {

   int n = Convert.ToInt32(Console.ReadLine());

   int[] a = new int[n];

   Random r = new Random();

   for (int i = 0; i < a.Length; i++) {

     a[i] = r.Next(-100, 101);

     Console.Write(a[i] + " ");

   }

   Console.WriteLine();

   int min = a.Min();

   int im = 0, k = 0;

   while (a[im] != min) {

       if (a[im] < 0  && a[im] !=min) k++;

       im++;

   }

   int nb = n - k;

   int[] b = new int[nb];

   int j = 0;

   for (int i = 0; i < n; i++ ) {

       if (i < im && a[i] < 0);

       else {

           b[j] = a[i];

           j++;

       }

   }

   foreach (int i in b)

   Console.Write (i + " ");

 }

}


На c# в массиве a=(a1, а2, аn) удалить все отрицательные элементы, стоящие перед минимальным элемент
rusart3

Он получил произведение исходных чисел.

За странным описанием процесса по сути скрывается описание алгоритма умножения в столбик двоичных чисел: на i-м шаге, если первое число нечетное (=если на i-м месте справа в первом числе стоит 1), к сумме прибавляется 2^(i - 1) * второе число (=если всё записано в двоичной системе счисления, умножение на степень двойки равносильно сдвигу числа влево).

Инвариант тут такой: в любой момент времени сумма всех чисел, записанных на доске, и произведения чисел, записанных на карточке, не меняется.

Сначала на примере, если на карточке записаны 5 и 7:

карточка: 5 и 7, сумма на доске: 0карточка: 2 и 14, сумма на доске: 7карточка: 1 и 28, сумма на доске: 7карточка: 0 и 56, сумма на доске: 7 + 28 = 35

В общем случае: пусть перед текущим шагом на доске числа a и b, сумма чисел на доске s; значение суммы ab + s. Есть два случая:

a = 2a'. Тогда на следующем шаге на карточке будет a' и 2b, на доске ничего не изменится. Значение суммы a' * 2b + s = 2a' * b + s = ab + sa = 2a' + 1. На следующем шаге на карточке a' и 2b, на доску добавится b. Значение суммы a' * 2b + s + b = (2a' + 1) b + s = ab + s

Изначально на доске выписаны числа суммой 0 (инвариант равен произведению чисел на карточке = p), в конце произведение чисел на карточке равно 0, тогда сумма выписанных чисел равна p.

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

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

Ввести с клавиатуры одномерный массив, состоящий из 10 элементов и записать сначала все элементы кратные 5, а затем все оставшиеся. на экран вывести исходный и новый массивы в две строки. отсортировать новый массив методом «пузырька». вывести отсортированный массив на экран.
Ваше имя (никнейм)*
Email*
Комментарий*

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

Eduardovich
appbiznessm
mikhailkirakosyan
nikdenly
Маринова
Баканова1415
Kolokolnikova DANIIL179
Хохлова Иванович
matterfixed343
Анатолий
Щербаков33
ocik1632933
thecoffeeowl
korj8
mouse-0211fsb3509