
C++, помогите Написать программу, которая для введённой с клавиатуры строки (максимальная длина
строки — 80 символов, использовать символьный массив) сообщает, какая цифра в ней встречается чаще всего, либо сообщает, что цифры в строке совсем отсутствуют. Если с одинаковой частотой в строке встретилось несколько цифр, то в качестве лидера вывести любую из подходящих цифр. Для обхода строк использовать указатели.

Ответы на вопрос

#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int max = 0;
char str[80];
char* p = str;
char* j = p;
char* mx = nullptr;
int count;
cout << "Введите строку \nМаксимальный размер: " << sizeof(str) << endl;
cin >> str;
while (*p != '\0')
{
count = 0;
j = str;
for (int i = 0; i < sizeof(str) - 1; i++)
{
if (((short)*p) == ((short)*j))
count++;
if ((count >= max) && (((short)*p) > 47 && ((short)*p) < 58))
{
max = count; mx = p;
}
j++;
}
*p++;
}
if (max > 0)
cout << "Наиболее часто встречается число " << *mx << " ,встретилось " << max << " раза" << endl;
else
cout << "В строке нет ни одного числа\n";
return 0;
}



Конечно, я могу помочь вам с этой задачей. Вот пример программы на C++, которая решает вашу задачу:
cpp#include <iostream>
#include <cstring>
int main() {
const int maxLength = 80;
char inputString[maxLength + 1]; // +1 for null-terminator
std::cout << "Введите строку (максимум 80 символов): ";
std::cin.getline(inputString, maxLength + 1); // Read input line
int digitFrequency[10] = {0}; // Array to store frequency of each digit (0-9)
char* ptr = inputString; // Pointer to traverse the input string
while (*ptr != '\0') {
if (*ptr >= '0' && *ptr <= '9') {
int digit = *ptr - '0';
digitFrequency[digit]++;
}
ptr++;
}
int maxFrequency = 0;
int mostFrequentDigit = -1; // Initialize to an invalid value
for (int i = 0; i < 10; i++) {
if (digitFrequency[i] > maxFrequency) {
maxFrequency = digitFrequency[i];
mostFrequentDigit = i;
}
}
if (mostFrequentDigit != -1) {
std::cout << "Самая частая цифра: " << mostFrequentDigit << std::endl;
} else {
std::cout << "Цифры отсутствуют в строке." << std::endl;
}
return 0;
}
Программа считывает строку с клавиатуры, а затем использует указатель для обхода символов в строке и подсчёта частоты встречающихся цифр. После этого программа находит наиболее часто встречающуюся цифру и выводит её на экран. Если цифры в строке отсутствуют, то выводится соответствующее сообщение.
Обратите внимание, что данная программа предполагает, что вводимая строка будет корректной и не содержит символов, отличных от цифр.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili