ananyananar
?>

Программа нужна на С++ без использования string. Дано предложение. Напечатать все его слова, предварительно преобразовав каждое из них по следующему правилу: a) удалить из слова все вхождения последней буквы (кроме нее самой); б) оставить в слове только первые вхождения каждой буквы;

Информатика

Ответы

Andreeva

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

#include<windows.h>

#include<iostream.h>

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#include<string.h>

int main()

{

   SetConsoleOutputCP(1251);

   char text[1000],p,r[]=" ,._-!?\"';:()";

   char T[][33] =  

{

{'а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я'},

{'А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я'}

};

   int i,q,j;

   char d,sLen;

   cout<<"Введите строку:"<<endl;

   /*gets(s);

   d=strlen(s);

   p=s[1];

   for(i=2;i<d;i++)

       if(strrchr(s[i],p)==0)

           p=s[i]+p;*/

   while(gets(text)!=NULL)

{

sLen = strlen(text);

for(i = 1; i < (sLen-1); i++){

 

if(text[i-1]=='.'){

for(i = 1; i < (sLen-1); i++){

 

{

for(j = 0; j < 33; j++) for(i = 0; i < 2; i++)

if(text[i] == T[i][j]) ;}}

cout<<text<<endl;

if(q==1) printf("%s\n", text);

 

   cout<<p<<endl;

   return 0;

Объяснение:

barekyan096140
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016
begin
  var a:=MatrixRandom(7,7,0,9);
  var k:=0;
  for var i:=0 to 6 do begin
    for var j:=0 to 6 do begin
      Write(a[i,j]:3);
      if a[i,j] in [1..5] then Inc(k)
      end;
    Writeln
    end;
  Writeln('Кол-во элементов на [1,5]: ',k)
end.

Тестовое решение:
  2  1  7  3  3  2  7
  9  2  9  2  0  5  5
  4  2  6  9  4  6  0
  1  0  3  5  4  5  9
  6  3  6  0  2  0  8
  0  8  4  3  2  1  8
  6  0  4  4  5  4  0
Кол-во элементов на [1,5]: 27

Вариант "совсем для школы"

const
  n=7;
var
  a:array[1..n,1..n] of integer;
  i,j,k:integer;
begin
  Randomize;
  k:=0;
  for i:=1 to n do begin
    for j:=1 to n do begin
      a[i,j]:=Random(10);
      Write(a[i,j]:3);
      if a[i,j] in [1..5] then Inc(k)
      end;
    Writeln
    end;
  Writeln('Кол-во элементов на [1,5]: ',k)
end.
НиколаевнаФ
Программа, которая использует два массива

var 
c, a: array[1..20] of integer; 
i: integer;
begin 
write('Первый массив '); 
for i := 1 to 20 do   begin   
c[i] := i * (-5);   
write(c[i], ' '); 
end; 
writeln; 
write('Преобразованный массив '); 
for i := 1 to 20 do   begin   
a[i] := c[20 - i + 1];   
write(a[i], ' '); 
end;  
end.

ИЛИ  Программа не использующая два массива, а просто переворачивающая первый

var 
c: array[1..20] of integer; 
i: integer;
begin  write('Первый массив '); 
for i := 1 to 20 do   begin   
c[i] := i * (-5);   
write(c[i], ' '); 
end; 
writeln; 
write('Преобразованный массив '); 
for i := 20 downto 1 do  write(c[i], ' '); 
end.

Обе программы работают!

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

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

Программа нужна на С++ без использования string. Дано предложение. Напечатать все его слова, предварительно преобразовав каждое из них по следующему правилу: a) удалить из слова все вхождения последней буквы (кроме нее самой); б) оставить в слове только первые вхождения каждой буквы;
Ваше имя (никнейм)*
Email*
Комментарий*

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

соловьев_Куркина
Андрееевич787
Aleksei1463
teya07
energycomplect5914
notka19746
shilinmikhaillg
Shevtsov1818
annakuznetsova841
ASRodichev
osipovasalex5316
tigran87-87
kokukhin
svetarakityanskaya
vallzh8328