На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 4
ссылка на сообщение  Отправлено: 11.02.22 17:45. Заголовок: 24 задание №162 не сходится ответ


Добрый день! Условие задачи: 162) Текстовый файл 24-s1.txt состоит не более чем из 106 заглавных латинских букв (A..Z). Текст разбит на строки различной длины. Необходимо найти строку, содержащую наименьшее ненулевое количество пар соседних букв, которые стоят в таком же порядке и в алфавите (например, AB, BC, CD и т.д.). Если таких строк несколько, надо взять ту, которая в файле встретилась раньше. Определите, какая буква встречается в этой строке чаще всего. Если таких букв несколько, надо взять ту, которая стоит последней в алфавите. Запишите в ответе эту букву, а затем – сколько раз она встречается во всем файле.
Пример. Исходный файл:
ZZQABA
ZALMAC
KRAKUT
В этом примере в первой и второй строках по одной подходящей паре (AB и LM), в третьей таких пар нет. Берём первую строку, т.к. она находится в файле раньше. В этой строке чаще других встречаются буквы Z и A (по два раза), выбираем букву Z, т. к. она позже стоит в алфавите. В ответе для этого примера надо записать Z3, так как во всех строках файла буква Z встречается 3 раза.
Ответ: W38473

Мое решение:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
ifstream F("24-s1.txt ");
string s, s1;
int k;
int k_min=10000;
int a[26]={0}; //заведем массив, в котором храним количество встреченной каждой из букв
while (getline( F, s ))
{
k=0;
for (int i=0; i<s.length()-1; i++) // разница в кодах соседних букв равна 1
{
if ((int) s - (int)s[i+1]==1) k++; // на сайте не видно обращение к i-му элементу
}
if (k<k_min && k!=0){ k_min=k; s1=s;} // запоминаем наименьшее количество пар и строку
}
for (int i=0; i<s1.length(); i++) // считаем, сколько раз встретилась каждая буква в подходящей строке
{
int x=(int)s1-(int)'A'; // тоже не видно обращение к i-му элементу строки
a[x]=a[x]+1;
}
int Max=a[0];
int n=0;
for (int i=1; i<26; i++) // ищем, какая буква встретилась чаще всего
if (Max<=a) { Max=a; n=i;};

char X=(char)(n+(int)'A');
cout << X << " " ; // выводим эту букву
F.clear();
F.seekg( 0 );
k=0;
while (getline( F, s ))
{
for (int i=0; i<s.length(); i++) // считаем количество таких букв
{
if (X==s) k++;
}
}
cout << k;
F.close();
return 0;
}

Почему-то, начиная со строки if ((int) s - (int)s[i+1]==1) k++; , шрифт становится курсивным и не весь код пропечатывается :(
Но программа работает и выдает ответ: Y 38566
Подскажите, пожалуйста, где я ошибаюсь

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]







Сообщение: 35
ссылка на сообщение  Отправлено: 12.02.22 09:19. Заголовок: if ((int) s - (int) ..



 цитата:
if ((int) s - (int) s[i + 1] == 1) k++; // на сайте не видно обращение к i-му элементу


Должно быть
if ((int) s[ i] - (int) s[i + 1] == -1)
или
if ((int) s[i+1] - (int) s[ i] == 1)

Вы считываете пары вида BA, CB, ....
В условии же считываются AB, BC, ...

Спасибо: 1 
ПрофильЦитата Ответить



Сообщение: 5
ссылка на сообщение  Отправлено: 12.02.22 16:30. Заголовок: Спасибо огромное!!! ..


Спасибо огромное!!! Все получилось ;)

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 161
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет