Построение из двух строк третьей строки по определенному принципу - C (СИ)

Узнай цену своей работы

Формулировка задачи:

На вход программе дается 2 строки, состоящие из букв английского алфавита. По следющим правилам строится третья строка, которая и будет результатом работы программы: 1)Берется первая строка, начинается прохождение строки с первого символа. Если буква согласная, то она просто переносится в строку результата, если же гласная, то тогда смотрится, сколько раз эта буква встречается в 1 и 2 строке. Если количество встреч данного символа меньше во второй строке, то в строку результата просто записывается эта буква, иначе она дважды записывается в строку результата. 2) Затем к строке результата приписывается вторая строка задом наперед. 3) Теперь берем вторую строку и работаем по похожему принципу, что и в первом пункте. Но гласные теперь просто переносятся в результат, а согласные, которые во второй строке встречаются реже - удалятся, иначе просто переносятся в единичном экземпляре. Пример работы программы: ТЕТРИС ТЕОРЕМА Результат: ТЕЕТРИСАМЕОЕ P.S. Понимаю, что запутанное условие, но уже неделю не могу разобраться с этой штукой. Очень нужна помощь!Заранее спасибо.

Решение задачи: «Построение из двух строк третьей строки по определенному принципу»

textual
Листинг программы
#include "stdafx.h"
#include <stdio.h> 
#include <string.h> 
#include <locale.h> 
 
int main()
{
    int i = 0, j = 0,k = 0, l = 0, k1 = 0, k2 = 0, len1 = 0, len2 = 0, p1 = 0, p2 = 0, sim = 0;
    char glas[] = "eyuioaqwrtpsdfghjklzxcvbnm";
    //char sogl[] = "qwrtpsdfghjklzxcvbnm";
    char  str1[80] = { "\0" };
    char str2[80] = { "\0" };
    char str[80] = { "\0" };
    int leng = strlen(glas),  len = 0;
 
    printf("Vvedite 2 stroki \n");
    gets_s(str1);
    gets_s(str2);
    len1 = strlen(str1);
    len2 = strlen(str2);
    for (i = 0; i < len1; i++)
    {
         for (j = 0; j < leng; j++)
         if (str1[i] == glas[j] && j < 6) {
             sim = glas[j];
             for (k = 0; k < len1; k++)
             
                 if (str1[k] == sim)
                     k1++;
             
             for (l = 0; l < len2; l++)
             
                 if (str2[l] == sim)
                     k2++;
             
             if (k1 > k2) 
                 str[i] = sim;
             else  
                 str[i] = sim;
                 str[i + 1] == sim;
         } 
         }
 
    
        puts(str);
        
        return(0);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5
Похожие ответы