+ Ответить в теме
Показано с 1 по 3 из 3

Тема: Помогите с программой

  1. #1
    Рушан is on a distinguished road
    Регистрация
    17.12.2017
    Возраст
    18
    Сообщений
    1
    Вес репутации
    0

    По умолчанию Помогите с программой

    Я недавно начал изучать массивы и не могу написать эту программу
    Дана строка символов. Признак конца строки – символ '\n' (пеpевод стpоки). Стpока состоит из слов, pазделенных пpобелами. Вывести
    слова, заканчивающиеся слогом 'ва', и длину каждого из этих слов
    я тут накидал но это ...
    Код cpp:
    1. #include <iostream>
    2. #include <stdio.h>
    3. #include <conio.h>
    4. #define DLSTR 80
    5. using namespace std;
    6.  
    7. int main()
    8. {
    9.     char str[DLSTR];
    10.     int i=0, j=0;
    11.     int n, k, a, b;
    12.     int error;
    13.     setlocale(LC_ALL"Russian");
    14.     cout <<("\n\nВведите строку символов\n");
    15.     gets(str);
    16.     cout <<("Результат\n");
    17.     while (str[i]!='\0')
    18.          {
    19.              if (str[i]==' ')  i++;
    20.              else
    21.              {
    22.                  a=i;
    23.                   do  i++;
    24.                   while ((str[i]!='  ') && (str[i]!='\0'));
    25.                   {
    26.                      b=i;
    27.                   }
    28.  
    29.  
    30.               while ((str[i+2]!=' ')&&(str[i+2]!='\0'))
    31.                 {
    32.                     n=i;
    33.                     i++;
    34.                 }
    35.  
    36.                     i=0;
    37.                 while ((str[i+1]!=' ')&&(str[i+1]!='\0'))
    38.                 {
    39.                     k=i;
    40.                     i++;
    41.                 }
    42.                 if ((str[k]=='а')&&( str[n]=='в'))
    43.                   {for (j=a; j<b; j++)
    44.                            putchar(str[j]);
    45.                        putchar('  ');
    46.                        error=0;
    47.                   }
    48.  
    49.              }
    50.              return 0;
    51.  
    52.     }
    53. }
    Последний раз редактировалось Romeo; 17.12.2017 в 18:30. Причина: [code=cpp]/code]

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    developer Слива is on a distinguished road
    Регистрация
    19.03.2016
    Сообщений
    132
    Вес репутации
    3

    По умолчанию Re: Помогите с программой

    Напиши описание алгоритма вкратце и теги кода неплохо-бы поставить. А зачем первое слово-то пропустил? Ну код бредовый конечно, его весь надо перерабатывать: в этой строке
    Код :
    1. if ((str[k]=='а')&&( str[n]=='в'))
    str[k] и str[n] - вообще получились из разных слов. Поэтому программа полностью косячная и работать не будет. Не обижайся, чувак. Такая вот горькая правда. Здесь нужно взять за основу алгоритм поиска буквы, которая стоит за 3 буквы до пробела или конца строки. Потом нужно сравнить 2 следующие буквы с "ва" - по одной букве, естественно. Предварительно нужно в слове посчитать буквы в слове, если слово окажется нужным, то вывести этот результат(Counter). Ну и так дальше по каждому слову.
    Последний раз редактировалось Слива; 17.12.2017 в 18:01. Причина: Добавил фразу.

  4. #3
    developer Слива is on a distinguished road
    Регистрация
    19.03.2016
    Сообщений
    132
    Вес репутации
    3

    По умолчанию Re: Помогите с программой

    Вот я код написал:
    Код :
    1. //---------------------------------------------------------------------------
    2. #include <vcl>
    3. #include <iostream>
    4. #include <conio>
    5. #include <stdio>
    6. #pragma hdrstop
    7. //---------------------------------------------------------------------------
    8. #pragma argsused
    9. #define DLSTR 80
    10. using namespace std;
    11.  
    12. int main(int argc, char* argv[])
    13. {
    14. char str[DLSTR];
    15. int i = 0, j = 0, n, a,
    16.     error, Counter = 0, CounterN = 0;
    17.    
    18. setlocale(LC_ALL, "Russian");
    19. cout << "Vvedite stroku simvolov:\n";
    20. gets(str);
    21. cout << "Result:\n";
    22. i = 0;
    23. while(str[i] != 0)  //poka ne konchilas stroka
    24. {
    25.     if(i > 0)
    26.         i++;
    27.  
    28.     a = i;  //nachalo slova
    29.     Counter = 0;
    30.     while((str[i+2]!=' ')&&(str[i+2]!='\0'))//poluchit slovo
    31.     {
    32.         Counter++;
    33.         n = i;
    34.         i++;
    35.     }
    36.     //n - za 2 bukvi do konca slova
    37.     Counter += 2;  //+2 bukvi = dlina slova
    38.  
    39.     if((str[n+1]=='v')&&(str[n+2]=='a'))
    40.     {
    41.         CounterN++;
    42.         cout << CounterN << " slovo: ";
    43.         for(j=a; j<(n+3); j++)
    44.             putchar(str[j]);
    45.         cout << "; Kolichestvo bukv: " << Counter << ";\n";
    46.         error=0;
    47.     }
    48.     i += 2;
    49. }
    50.  
    51. getch();
    52. return 0;
    53. }
    54. //---------------------------------------------------------------------------
    C++Builder 6. Только тут для латинских v и a, потому что у меня компьютер не поддерживает русские буквы в C++Builder 6. Надеюсь ума хватит заменить латинские на русские. Не в обиду. Иииии, жду спасибо.

+ Ответить в теме

Похожие темы

  1. помогите разобраться с программой
    Граф задаётся своей матрицей смежностей. Вывести на экран: • графическое представление графа; текст программы: #include <iostream.h> #include...
    от Марино4ка в разделе C и C++
  2. Помогите с программой
    Написать программу, которая обеспечивает возможность ввода и редактирования текстовой строки. После нажатия Enter повторно вывести строку на экран...
    от Juffin2301 в разделе Ассемблер
  3. Помогите пожалуйста с программой!
    Помогите пожалуйста с программкой! Нужно написать программу на языке ассемблера 8086, определяющую размер первого встретившегося участка памяти с...
    от Vinchenso в разделе Ассемблер
  4. помогите пожалуйста с программой срочно
    помогите пожалйста кто этом разбирается. Есть прога, подскажите что эти строки значат CLRWDT BSF STATUS , RP0 ...
    от Norma в разделе Ассемблер
  5. Помогите пожалуйста с программой!!!
    Люди добрые кто разбирается в асме помогите плиз решить задачку, буду очень благодарен за полный код программы :) Разработать программу,...
    от TITAN в разделе Ассемблер

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения