agutty3
?>

Дано слово, состоящее из четного числа букв. вывести на экран его первую половину, не используя оператор цикла входные данные: в первой строке задается слово, состоящее из четного числа букв. выходные данные: необходимо вывести первую половину исходного слова пример входных и выходных данных № теста входные данные выходные данные 1 privet pri на с++

Информатика

Ответы

nataliarogacheva
#include <iostream>
#include <iomanip>

using namespace std;

int main() {

   char a[200];
   cout<<"string: ";  cin>>a;
   a[strlen(a)/2]=0;
   cout<<a<<endl;
   system("pause");
   return 0;
}

ввод - вывод

string:  ABCDEFGH
ABCD
Anastasiya
Рассмотрим, что делает эта программа.
  c := 0; // начальное значение счётчика

  for i := 1 to 9 do // цикл по i

    if A[i - 1] < A[i] then begin // если текущий элемент больше предыдущего

      c := c + 1; // то увеличиваем счётчик на 1

      t := A[i]; // и меняем текущий элемент местами с предыдущим

      A[i] := A[i - 1];

      A[i - 1] := t

    end;

Последние три строчки перед end - обычный алгоритм обмена значениями между двумя переменными (t = a; a = b; b = t).

Итак, моделируем, что делает программа и считаем число обменов.

0) 6 9 7 2 1 5 0 3 4 8 - исходный массив
1) 6 9 7 2 1 5 0 3 4 8 -> 9 6 7 2 1 5 0 3 4 8 ОБМЕН
2) 9 6 7 2 1 5 0 3 4 8 -> 9 7 6 2 1 5 0 3 4 8 ОБМЕН
3) 9 7 6 2 1 5 0 3 4 8 ОК
4) 9 7 6 2 1 5 0 3 4 8 ОК
5) 9 7 6 2 1 5 0 3 4 8 -> 9 7 6 2 5 1 0 3 4 8 ОБМЕН
6) 9 7 6 2 5 1 0 3 4 8 ОК
7, 8, 9) Ноль будет "всплывать" в конец, 3 ОБМЕНА

Всего будет 6 обменов, c = 6.
Олегович Паутова
//pascal //1) var   a: array[1..5, 1..8] of integer;   i, j: byte;   sumr, sumc: integer; begin   randomize;   writeln('исходный массив': 28);   for i : = 1 to 5 do   begin       for j : = 1 to 8 do       begin           a[i, j] : = random(61)-30;           write(a[i,j]: 5);           if i = 3 then sumr : = sumr + a[i, j];           if j = 5 then sumc : = sumc + a[i, j];       end;   writeln;   end;   writeln('сумма элементов 5 столбца = ', sumc);   writeln('сумма элементов 3 строки = ', sumr); end.//2) var   a: array[1..5, 1..8] of integer;   i, j: byte;   suma, sumb, countv, countg: integer; begin   randomize;   writeln('исходный массив': 28);   for i : = 1 to 5 do   begin       for j : = 1 to 8 do       begin           a[i, j] : = random(300)-150;           write(a[i,j]: 5);           if ((i = 5) and (a[i, j] < 0)) then suma : = suma + a[i, j];           if ((j = 4) and (a[i, j] < 100)) then sumb : = sumb + a[i, j];           if ((i = 4) and (a[i, j] < 5)) then countv : = countv + 1;           if ((j = 2) and (a[i, j] > 15)) then countg : = countg + 1;       end;   writeln;   end;   writeln('сумма отрицательных 5 строки = ', suma);   writeln('сумма меньших 100 4-ого столбца = ', sumb);   writeln('количество меньших 5 4-ой строки = ', countv);   writeln('количество ненулевых, больших 15 2-ого столбца = ', countg); end.

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

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

Дано слово, состоящее из четного числа букв. вывести на экран его первую половину, не используя оператор цикла входные данные: в первой строке задается слово, состоящее из четного числа букв. выходные данные: необходимо вывести первую половину исходного слова пример входных и выходных данных № теста входные данные выходные данные 1 privet pri на с++
Ваше имя (никнейм)*
Email*
Комментарий*

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

bhg50
tarkhanovilya
zazaza74
Nikolaevna1623
vbnm100584
misstimarina2016
Rubber-soul
ivshzam
Kamil
innesagrosheva22
Xeniya91
zvanton
shneider1969
Присакарь520
AHO436