пятница, 21 ноября 2025 г.

с++

 8980 изначити кількість речень у заданому тексті. Вважайте, що речення закінчується одним із символів "."(крапка), "!"(знак оклику) або "?"(знак запитання), а наборів знаків типу "...", "!!!" і "?!" в тексті немає.

Вхідні дані

Один рядок тексту, що складається з латинських символів, розділових знаків та проміжків. Рядок містить не більш ніж 200 символів.Щоб визначити кількість речень, достатньо порахувати символи, які завершують речення:

  • .

  • !

  • ?

Оскільки за умовою немає багатокрапок ("...") та повторів типу "!!!", кожен такий символ — це кінець одного речення.

#include <bits/stdc++.h>

using namespace std;

int main() {

    string s;

    getline(cin, s);

    int cnt = 0;

    for (char c : s) {

        if (c == '.' || c == '!' || c == '?')

            cnt++;

    }

    cout << cnt;

    return 0;

}

8981 Знайдіть індекси першого та останнього проміжку в заданому рядку, враховуючи, що перший символ має індекс .

Вхідні дані

Один рядок тексту, який складається лише із латинських літер, розділових знаків та проміжків.

Вихідні дані

Виведіть індекси першого та останнього проміжку. Якщо проміжків у рідку не знайдеться, то виведіть .

Приклади

Вхідні дані #1
I am programming on Python.
Відповідь #1
1 19

Оскільки потрібно знайти індекс першого пробілу та індекс останнього пробілу, досить пройтись по рядку й запам’ятати ці значення.

Якщо пробілів немає — вивести -1.

#include <bits/stdc++.h>

using namespace std;

int main() {

    string s;

    getline(cin, s);

    int first = -1, last = -1;

    for (int i = 0; i < (int)s.size(); i++) {

        if (s[i] == ' ') {

            if (first == -1) first = i;

            last = i;

        }

    }

8982 Виведіть усі індекси маленької латинської літери a в заданому рядку, враховуючи, що перший символ має індекс 0.

Вхідні дані

Один рядок тексту, який складається лише з латинських літер, розділових знаків та проміжків.

Вихідні дані

Виведіть усі індекси літери a в одному рядку. Якщо літера a у рядку не зустрічається, то вивести -1.

завдання (за прикладами) полягає у виведенні всіх індексів літери a в заданому рядку.

Перевірка:

abrakadabra
Символи a стоять на позиціях:

a(0) b(1) r(2) a(3) k(4) a(5) d(6) a(7) b(8) r(9) a(10)

Вихід:

0 3 5 7 10

#include <bits/stdc++.h>

using namespace std;
int main() {
    string s;
    getline(cin, s);
    vector<int> indices;
    for (int i = 0; i < (int)s.size(); i++) {
        if (s[i] == 'a') {
            indices.push_back(i);
        }
    }
    if (indices.empty()) {
        cout << -1;
    } else {
        for (int i = 0; i < (int)indices.size(); i++) {
            if (i > 0) cout << " ";
            cout << indices[i];
        }
    }
}

8983 Задано рядок, що містить вираз з цифр, знаків арифметичних операцій і дужок. Знайдіть кількість використаних у виразі цифр.

Вхідні дані

Арифметичний вираз, що містить цифри, дужки та арифметичні знаки.

Вихідні дані

Виведіть кількість цифр у виразі.

Приклади

Вхідні дані #1
9*8+76-54/3+2**10
#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    getline(cin, s);

    int cnt = 0;
    for (char c : s) {
        if (isdigit(c)) cnt++;
    }

    cout << cnt;
    return 0;
}
8984
#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    getline(cin, s);

    int count_ops = 0;

    for (size_t i = 0; i < s.size(); i++) {
        // Перевірка двосимвольних операторів
        if (i + 1 < s.size()) {
            if (s[i] == '*' && s[i + 1] == '*') {
                count_ops++;
                i++;
                continue;
            }
            if (s[i] == '/' && s[i + 1] == '/') {
                count_ops++;
                i++;
                continue;
            }
        }

        // Односимвольні оператори
        if (s[i] == '+' || s[i] == '-' || s[i] == '*' ||
            s[i] == '/' || s[i] == '%') {
            count_ops++;
        }
    }

    cout << count_ops;
    return 0;
}

8985

Видалити всі маленькі латинські літери  у заданому рядку.

Вхідні дані

Один рядок, що складається з не більш ніж  латинських літер та проміжків.

Вихідні дані

Вивести рядок без маленьких латинських літер , не змінюючи порядок інших символів.

Приклади

Вхідні дані #1
abrakadabra
Відповідь #1
brkdbr
#include <bits/stdc++.h>
using namespace std;
int main() {
    string s;
    getline(cin, s);
    for (char c : s) {
        if (c != 'a') cout << c;
    }
    return 0;
}
8986 

Задано рядок, що складається з латинських літер та проміжків. Видаліть в ньому всі символи з індексами від n до m включно. Нумерація починається з 0.

Вхідні дані

Перший рядок містить текст, що складається з не більш ніж 1000 латинських літер та проміжків. Другий рядок містить два цілих числа n і m (n ≤ m).

Вихідні дані

Виведіть оновлений рядок.

Приклади

Вхідні дані #1
abrakadabra
3 6
Відповідь #1
abrabra
Вхідні дані #2
This is my lovely beautiful house
7 16
#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    getline(cin, s);

    int n, m;
    cin >> n >> m;

    if (n >= 0 && m < (int)s.size() && n <= m) {
        s.erase(n, m - n + 1);
    }

    cout << s;
    return 0;
}
8987  Замініть в рядку всі символи '' на '' і навпаки.

Вхідні дані

Один рядок довжиною не більше  символів, що містить тільки латинські букви і пробіли.

Вихідні дані

Виведіть рядок з виконаною заміною.

Приклади

Вхідні дані #1
abrakadabra
Відповідь #1
barbkbdbarb
#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    getline(cin, s);

    for (char &c : s) {
        if (c == 'a') c = 'b';
        else if (c == 'b') c = 'a';
    }
    cout << s;
    return 0;
}
8988

У рядку, що складається з латинських літер і проміжків, замінити кожну послідовність символів "ab" на "ups".

Вхідні дані

Один рядок, що складається з латинських літер та проміжків.

Вихідні дані

Виведіть оновлений рядок.

Приклади

Вхідні дані #1
abrakadabra
Відповідь #1
upsrakadupsra
#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    getline(cin, s);

    size_t pos = 0;
    while ((pos = s.find("ab", pos)) != string::npos) {
        s.replace(pos, 2, "ups"); // замінюємо 2 символи на "ups"
        pos += 3; // рухаємося далі після вставки
    }

    cout << s;
    return 0;
}
8989 Задано рядок, що складається з англійських букв і проміжків. Потрібно в ньому подвоїти всі символи a.

Вхідні дані

Один рядок, що складається з англійських літер та проміжків.

Вихідні дані

Відповідь до задачі.

Приклади

Вхідні дані #1
abrakadabra
Відповідь #1
aabraakaadaabraa
#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    getline(cin, s);

    string result;

    for (char c : s) {
        if (c == 'a') {
            result += "aa"; // подвоюємо 'a'
        } else {
            result += c;    // додаємо інші символи без змін
        }
    }

    cout << result;
    return 0;
}
8990 Рядок складається з маленьких латинських літер і проміжків. Подвійте в ньому всі голосні літери, тобто літери  та .

Вхідні дані

Один рядок, що складається з маленьких латинських літер та проміжків.

Вихідні дані

Виведіть рядок з усіма подвоєними голосними літерами.

Приклади

Вхідні дані #1
welcome to python
Відповідь #1
weelcoomee too pyythoon
#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    getline(cin, s);

    string result;
    string vowels = "aeiouy"; // голосні

    for (char c : s) {
        if (vowels.find(c) != string::npos) {
            result += c;
            result += c; // подвоюємо голосні
        } else {
            result += c; // інші символи залишаються
        }
    }

    cout << result;
    return 0;
}
8960 З консолі вводиться масив з N цілих чисел. Програма повинна знайти суму елементів масиву, не враховуючи всіх його найменших і найбільших елементів.

Вхідні дані

В першому рядку записане натуральне число N. У наступному рядку записані N цілих чисел.Всі числа за модулем не перевищують 100.

Вихідні дані

Відповідь до задачі.

Приклади

Вхідні дані #1
7
6 2 7 1 7 1 2
Відповідь #1
10
#include <bits/stdc++.h>
using namespace std;
int main() {
    int N;
    cin >> N;
    vector<int> a(N);
    for (int i = 0; i < N; i++) cin >> a[i];
    int mn = *min_element(a.begin(), a.end());
    int mx = *max_element(a.begin(), a.end());

    int sum = 0;
    for (int x : a) {
        if (x != mn && x != mx) {
            sum += x;
        }
    }
    cout << sum;
 
}
8961 Задано масив з n цілих чисел. Знайдіть найменший елемент масиву, що зустрічається найпершим та поміняйте його з першим елементом у масиві, не змінюючи порядок інших елементів.

Вхідні дані

Перший рядок містить натуральне число n. У наступному рядку записано n цілих чисел. Усі числа за модулем не перевищують 100.

Вихідні дані

Вивести елементи оновленого масиву.

Приклади

Вхідні дані #1
7
6 -3 5 -5 -4 7 -5
Відповідь #1
-5 -3 5 6 -4 7 -5
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> a(n);

    for (int i = 0; i < n; i++) cin >> a[i];

    // знаходимо мінімальний елемент
    int min_val = a[0];
    int min_idx = 0;

    for (int i = 1; i < n; i++) {
        if (a[i] < min_val) {
            min_val = a[i];
            min_idx = i;
        }
    }

    // міняємо місцями з першим елементом
    swap(a[0], a[min_idx]);

    // вивід
    for (int i = 0; i < n; i++) {
        if (i) cout << " ";
        cout << a[i];
    }

    return 0;
}

Комментариев нет:

Отправить комментарий