Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Delitr
0 / 0 / 0
Регистрация: 04.09.2015
Сообщений: 18
#1

Не получается сделать таблицу замены - C++

03.10.2015, 09:43. Просмотров 216. Ответов 3
Метки нет (Все метки)

Добрый день. Есть программа, которая получается на вход 2 текста, один в открытом виде, другой-зашифрованный. Программа считает кол-во символов в каждом тексте и после каждого из текстов выводит таблицу, относительно английского алфавита, сколько каких букв ест в тексте(в % соотношении ко всему тексту) Таких таблиц, следовательно 2, потом обе эти таблицы объединены,т.е. есть 2мерный массив, в котором в 1 строке написаны вер-ти появления букв 1 текста,а во 2ой строке-2ого. Так вот в чем проблема: есть 2мерный массив, где у него в 1 и 2 строке просто записан алфавит
C++
1
2
char lab4[2][26]={{'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'},
                      {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}};
Так вот необходимо относительно массива,о чем говорилось выше, с вер-ми 2 текстов( FINALtable[2][26]) ) отфильтровать массив lab4[2][26] , так, чтобы элементы 2 строк были соотнесены друг другу, как ближайшие вер-ти массива FINALtable[2][26], т.е.
если в массиве FINALtable[2][26] элементы FINALtable[0][12]==0.013 FINALtable[1][17]==0.015 (относительно всех элементов массива у этих 2х элементов самая меньшая разница в вероятностях. то необходимо чтобы в массиве lab4 в 1 строке под элементом с индексом 11(12 по порядку)=='L' был соотнесен во 2строке элемент, который был на 16 позиции 2 строки, т.е. 'P'. Я пытался, вот чт оу меня получилось, но результат неверный(

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
for(i=0;i<26;i++)
   { 
       for(j=0;j<26;j++)
       {
           if (i!=0)
           {
               if (FINALtable[0][i-1]!=10.1)
                   i-=1;
           } 
            
           shag+=0.001;
          if((FINALtable[0][i]>=FINALtable[1][j]-shag)&&(FINALtable[0][i]<=FINALtable[1][j]+shag))   
           {  
               FINALtable[0][i]=10.1;
               FINALtable[1][j]=10;
               zamena=lab4[1][i];
               lab4[1][i]=lab4[1][j];
               lab4[1][j]=zamena;  
           }
            
       }
           
                
           
   }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2015, 09:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не получается сделать таблицу замены (C++):

Не получается сделать задачу - C++
Нужно определить возможность существования треугольника по сторонам. Я ввод чисел написал #include &lt;stdio.h&gt; main () { int a,b,c; ...

Все не получается сделать - C++
Осуществить сравнение первых n символов двух строк. Знаю что надо использовать функцию strncmp А вот как написать , не знаю ...

Не получается сделать калькулятор - C++
Почему-то калькулятор не хочет работать как надо,со всеми функциями проблем нет кроме функции void getwrite(Clrk pp,Clrk ppp) компилятор...

Не получается сделать Hello World С++ - C++
Добрый день. Использую microsoft visual studio community 2015 со всеми надстройками. Создаю пустой проект, далее делаю main.cpp В нем...

Не получается сделать переполнение буфера - C++
Всем привет! Нужно сделать переполнение буфера и подменить адрес функции на другой. Если делаю так: void overflow(char *ptr) {...

не получается сделать задание с оператором -> - C++
//тема про оператор стрелка -&gt; я так понимаю задание надо сделать с использованием этого оператора //напишите программу, в которой...

3
nmcf
5532 / 4842 / 1640
Регистрация: 14.04.2014
Сообщений: 19,642
03.10.2015, 11:45 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for (int i = 0; i < 26; ++i)
{
    double m = 1.0;
    int ii, jj;
 
    for (int j = 0; j < 26; ++j)
    {
        if (fabs(FINALtable[0][i] - FINALtable[1][j]) < m)
        {
            m = fabs(FINALtable[0][i] - FINALtable[1][j]);
            ii = i;
            jj = j;
        }
    }
 
    lab4[1][ii] = lab4[0][jj];
}
1
Delitr
0 / 0 / 0
Регистрация: 04.09.2015
Сообщений: 18
03.10.2015, 12:05  [ТС] #3
Спасибо,заменил кусок, который кидал выше на ваш, но почему-то выдает много ошибок с текстом
warning C4258: i: определение из цикла for игнорируется; используется определение из внешней области видимости
0
nmcf
5532 / 4842 / 1640
Регистрация: 14.04.2014
Сообщений: 19,642
03.10.2015, 13:11 #4
Убери объявление i, где оно там есть. Только в циклах пусть останется.
0
03.10.2015, 13:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2015, 13:11
Привет! Вот еще темы с ответами:

Массивы. Не получается сделать задачу - C++
Составить прог-му которая формирует новый массив из старого добавляя после каждого 0-евого элемента ещё 2 нулевых элемента. Я это так...

Не получается сделать 3 класса шаблонными. - C++
Есть три класса + функция main, в которой используются эти классы. Все работает. Сделал эти три класса шаблонными. В main в объявлении...

Нужно сделать таймер но не получается - C++
Вообщем нужно выполнить команду (допустим Say(&quot;Hello world&quot;)) 3 раза с интервалом в 1 секунду. Я испробовал много способов, но не один не...

Две Программы по С++ по ООП - не получается сделать - C++
Вот две задачки по ООП не могу сделать, кто может напишите код пожалуйста, лучше с коментариями для каждой строчки, буду очень признателен...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru