Загрузка данных


#include <iostream>
#include <clocale>

using namespace std;

// Предусловие: пользователь вводит с клавиатуры непустую строку символов (длиной до 100 символов), заканчивающуюся нуль-терминатором '\0'.
// Постусловие: подсчитано и выведено на экран количество вхождений символов 'r', 'k', 't' (как строчных, так и прописных), а также их общая сумма.
void main()
{
    setlocale(LC_ALL, "Russian");

    // массив под строку
    char st[100];

    cout << "Введите строку: ";
    cin.getline(st, 100);

    // счетчики для букв
    int kr = 0;
    int kk = 0;
    int kt = 0;

    int i = 0;
    // цикл пока не конец строки
    while (st[i] != '\0')
    {
        if (st[i] == 'r' || st[i] == 'R')
        {
            kr++;
        }
        if (st[i] == 'k' || st[i] == 'K')
        {
            kk++;
        }
        if (st[i] == 't' || st[i] == 'T')
        {
            kt++;
        }
        i++;
    }

    // вывод количества
    cout << "Букв r: " << kr << endl;
    cout << "Букв k: " << kk << endl;
    cout << "Букв t: " << kt << endl;
    cout << "Всего: " << kr + kk + kt << endl;

    system("pause");
}

#include <iostream>
#include <clocale>

using namespace std;

// Предусловие: вводится строка символов (длиной до 100 символов), оканчивающаяся символом '\0'.
// Постусловие: сформирован массив st1, содержащий только уникальные символы исходной строки без повторений; на экран выведено их количество k и сам массив st1.
void main()
{
    setlocale(LC_ALL, "Russian");

    // исходная строка и массив под уникальные символы
    char st[100];
    char st1[100];
    int k = 0; // количество различных символов

    cout << "Введите строку: ";
    cin.getline(st, 100);

    int i = 0;
    while (st[i] != '\0')
    {
        // флаг: есть ли уже такой символ в st1
        int f = 0;

        for (int j = 0; j < k; j++)
        {
            if (st[i] == st1[j])
            {
                f = 1; // нашли повтор
                break;
            }
        }

        // если символ встретился впервые, записываем его в st1
        if (f == 0)
        {
            st1[k] = st[i];
            k++;
        }

        i++;
    }
    st1[k] = '\0'; // закрываем результирующую строку нуль-терминатором

    cout << "Количество различных символов: " << k << endl;
    cout << "Различные символы: " << st1 << endl;

    system("pause");
}

#include <iostream>
#include <clocale>

using namespace std;

// Предусловие: в массив st[14] введена строка длиной до 13 символов, состоящая из допустимых цифр римской системы счисления (I, V, X, L, C, D, M).
// Постусловие: вычислено и выведено на экран эквивалентное целое положительное число в десятичной системе счисления с учетом правил сложения и вычитания разрядов.
void main()
{
    setlocale(LC_ALL, "Russian");

    // 13 символов по условию задачи + 1 ячейка под '\0'
    char st[14];

    cout << "Введите римское число (до 13 символов): ";
    cin.getline(st, 14);

    int s = 0; // итоговая сумма
    int i = 0;

    while (st[i] != '\0')
    {
        // определяем значение текущего символа
        int n1 = 0;
        char c = st[i];

        if (c == 'I' || c == 'i') n1 = 1;
        if (c == 'V' || c == 'v') n1 = 5;
        if (c == 'X' || c == 'x') n1 = 10;
        if (c == 'L' || c == 'l') n1 = 50;
        if (c == 'C' || c == 'c') n1 = 100;
        if (c == 'D' || c == 'd') n1 = 500;
        if (c == 'M' || c == 'm') n1 = 1000;

        // определяем значение следующего за ним символа
        int n2 = 0;
        char c2 = st[i + 1];

        if (c2 == 'I' || c2 == 'i') n2 = 1;
        if (c2 == 'V' || c2 == 'v') n2 = 5;
        if (c2 == 'X' || c2 == 'x') n2 = 10;
        if (c2 == 'L' || c2 == 'l') n2 = 50;
        if (c2 == 'C' || c2 == 'c') n2 = 100;
        if (c2 == 'D' || c2 == 'd') n2 = 500;
        if (c2 == 'M' || c2 == 'm') n2 = 1000;

        // если текущее значение меньше следующего (например, IV: 1 < 5) — вычитаем, иначе прибавляем
        if (n1 < n2)
        {
            s = s - n1;
        }
        else
        {
            s = s + n1;
        }

        i++;
    }

    cout << "В десятичной системе: " << s << endl;

    system("pause");
}