Форум программистов, компьютерный форум CyberForum.ru

Дано три строки,нужно вывести первую,удалив из нее гласные,содержащиеся во второй и удвоив согласные,содержащиеся в третьей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Попытка создать обработку событий http://www.cyberforum.ru/cpp-beginners/thread997388.html
Попытался создать что-то наподобии сигналов и слотов. Вот мой файл Event.h #ifndef ELEM_H #define ELEM_H #include <vector> #include "Delegate.h" using std::vector;
C++ Демографическая модель Мальтуса Добра вам, дорогие форумчане. Нужно написать программу, которая по заданным параметрам будет строить демографическую модель Мальтуса Параметры которые можно менять: коэффициент рождаемости, смертности, начальная численность популяции, внешние переменные В фото прикрепил вырезку из практикума http://www.cyberforum.ru/cpp-beginners/thread997359.html
C++ Разработка библиотеки на С++ работа со списками
Требуется разработать библиотеку com для работы с полуторосвязным списком(где каждый элемент имеет указатель на следующий и только каждый 10ый имеет указатель назад) в этой библиотеке должны быть все функции для работы с таким списком. Также он является упорядоченным. Заранее большое спасибо, помогите новичку пожалуйста.
Решение задачи C++
Имеется задача: Имеем К квадратных плиток. Из них нужно выложить прямоугольник высотой H и шириной W плиток. Вариантов, как вы понимаете, немало. Но каждый прямоугольник имеет свой ​​код. Этот код вычисляется как сумма двух величин: Квадратоподобие = | H - W | Экономичность = К - H * W Нужно найти минимально возможный код прямоугольника.
C++ Сортировка слиянием http://www.cyberforum.ru/cpp-beginners/thread997339.html
Пожалуйста можете предоставить код сортировки слиянием, который будет считывать массив с N чисел, а возвращать упорядоченный массив. Скажите будет ли сортировка слиянием работать быстрее или равных с быстрою сортировкою. Будет ли функция std::sort() работать быстрее или равных с быстрою сортировкою. За ранние спасибо.
C++ Задан массив целых чисел. Определить, сколько процентов от всего количества элементов исходного массива составляют нечётные элементы Что-то я совсем не так делаю. Помогите разобраться. Заранее большое спасибо. #include <iostream>; #include<stdlib.h>; using namespace std; int main() { setlocale(LC_ALL, "Rus"); int i, per,odd; int array; подробнее

Показать сообщение отдельно
Anton_Kretov
89 / 51 / 7
Регистрация: 26.06.2013
Сообщений: 179
04.11.2013, 17:53     Дано три строки,нужно вывести первую,удалив из нее гласные,содержащиеся во второй и удвоив согласные,содержащиеся в третьей
Написал пока что код для модификации первой строки (гласные второй строки), пишу пока что вторую часть. Вот первая, проверьте. Если надо, то могу кинуть с комментариями:
C++
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <iostream>
#include <cstdio>
 
using namespace std;
 
int findVowelInSecondString(char *secondString, int *indexOfLowelsInSecondString);
int findSameLowelsInFirstString(char *firstString, char *secondString, int *indexOfLowelsInSecondString, int numOfIndexes, int *indexesToDelete);
void deleteLowelsInFirstString(char *firstString, char *modifiedFirstString, int *indexesToDelete, int numOfIndexes);
bool isToDelete(int i, int *indexesToDelete, int numOfIndexes);
 
int main()
{
    char firstString[100], secondString[100], thirdString[100], modifiedFirstString[100];
    int indexOfLowelsInSecondString[100], indexesToDelete[100];
    int *ip = indexOfLowelsInSecondString, *iip = indexesToDelete;
    cout << "Enter first string: "; gets(firstString);
    cout << "\n" << "Enter second string: "; gets(secondString);
    cout << "\n" << "Enter third string: "; gets(thirdString);
    cout << "\n" << "Here are your string - first: " << firstString << ", second: " << secondString << " and third: " << thirdString;
    findVowelInSecondString(secondString, ip);
    int j = findVowelInSecondString(secondString, ip);
    for(int i = 0; i < j; i++) {
       cout << "\n" << indexOfLowelsInSecondString[i];
    }
    int k = findSameLowelsInFirstString(firstString, secondString, ip, j, iip);
    for(int i = 0; i < k; i++) {
        cout << "\n" << "We schould delete " << indexesToDelete[i] << " element of firstString, that is: " << firstString[indexesToDelete[i]];
    }
    cout << "\n";
    deleteLowelsInFirstString(firstString, modifiedFirstString, indexesToDelete, k);
    return 0;
}
 
int findVowelInSecondString(char *secondString, int *indexOfLowelsInSecondString) {
    int j = 0;
    for(int i = 0; secondString[i]; i++) {
        cout << "\n" << "Step " << i;
        switch(secondString[i]) {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
        case 'y':
            indexOfLowelsInSecondString[j] = i;
            cout << "\n" << indexOfLowelsInSecondString[j];
            j++;
 
        }
    }
    return j;
}
 
int findSameLowelsInFirstString(char *firstString, char *secondString, int *indexOfLowelsInSecondString, int numOfIndexes, int *indexesToDelete) {
    int k = 0;
   for(int i = 0; firstString[i]; i++) {
         for(int j = 0; j < numOfIndexes; j++) {
            if(firstString[i] == secondString[indexOfLowelsInSecondString[j]]) {
                cout << "\n" << "SIMILARITY!!! firstString[" << i << "] = " << firstString[i] << " secondString[" << indexOfLowelsInSecondString[j] << "] = " <<  secondString[indexOfLowelsInSecondString[j]];
                indexesToDelete[k] = i;
                 cout << "\n" << "IndexesToDelete[" << k << "] = " << indexesToDelete[k] << " AND  i = " << i;
                k++;
                break;
            }
        }
    }
    return k;
}
 
void deleteLowelsInFirstString(char *firstString, char *modifiedFirstString, int *indexesToDelete, int numOfIndexes) {
    cout << "\n" << "firstString = " << firstString << ", numOfIndexes = " << numOfIndexes;
    int k = 0;
    for(int i = 0; firstString[i]; i++) {
        for(int j = 0, h = 0; j < numOfIndexes; j++, h++) {
                cout << "\n" << "STEP " << j << " and h is " << h;
            if(isToDelete(i, indexesToDelete, numOfIndexes)) {
                    modifiedFirstString[k] = firstString[i];
                    cout << "\n" << "Now " << k << " element of modifiedFirstString is " << modifiedFirstString[k] << " and " << k << " element of firstString is " << firstString[i];
                    cout << "\n" << "IndexesToDelete[" << h << "] = " << indexesToDelete[h] << " AND  i = " << i;
                    k++;
                    break;
 
            }
 
        }
    }
 
  
    cout << "\n" << "Modified string: ";
    for(int g = 0; modifiedFirstString[g]; g++) cout << modifiedFirstString[g];
}
 
bool isToDelete(int i, int *indexesToDelete, int numOfIndexes) {
    for(int j = 0; j < numOfIndexes; j++) {
        cout << "\n" << "j = " << j;
        if(i == indexesToDelete[j]) return false;
    }
    return true;
}
Добавлено через 31 минуту
Пардон, забыл break после case (подставьте в 48 строку).
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru