‘орум программистов, компьютерный форум CyberForum.ru
Ќаши страницы

—++ дл€ начинающих

¬ойти
–егистраци€
¬осстановить пароль
 
vyachesmine
7 / 7 / 1
–егистраци€: 19.02.2013
—ообщений: 22
#1

Ќе работает цикл for - C++

10.03.2014, 22:10. ѕросмотров 306. ќтветов 7
ћетки нет (¬се метки)

¬сем привет! Ќеобходимо было написать реализацию RSA, однако возникли проблемы с циклом for:
C++
1
2
for (i=2; i<=funcN; i++)
    if ((evklid(i,funcN) == 1) and (fmod(i,funcN) != 0)) k_open = i;
ѕолный исходник:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream.h>
#include <locale.h>
#include <math.h>
#include <time.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
using namespace std;
int evklid(int a, int b)
{
    int min,max,ost;
    if (a < b)
    {
          min = a;
          max = b;
    }
    else
    {
        min = b;
        max = a;
    }
    while (ost != 0 )
    {
          ost = max % min;
          max = min;
          min = ost;
    }
    return max;
}
int main()
{
    setlocale(LC_ALL,".1251");
    srand(time(NULL));
    char  simbol[2];
    char abc[]= "√А√Б√В√Г√Д√Е¬®√Ж√З√И√Й√К√Л√М√Н√О√П√Р√С√Т√У√Ф√Х√Ц√Ч√Ш√Щ√Ъ√Ы√Ь√Э√Ю√Я";
    int text[4];
    int M[4];
    int C[4];
    int P,Q,N,k_open,k_secret,i,funcN;
    P = 3;
    Q = 11;
    N = P*Q;
    funcN = (P - 1) * (Q - 1);
    for (i=2; i<=funcN; i++)
    if ((evklid(i,funcN) == 1) and (fmod(i,funcN) != 0)) k_open = i;                  
    cout << k_open << endl;
    k_secret = 3;
    text[0] = 30;
    text[1] = 2;
    text[2] = 21;
    //√Ш√®√і√∞√Ѓ√Ґ√*√*√®√• √±√Ѓ√Ѓ√°√є√•√*√®√њ
    cout << "√З√*√Є√®√і√∞√Ѓ√Ґ√*√*√*√Ѓ√• √±√Ѓ√Ѓ√°√є√•√*√®√•: " << endl;
    for (i=0; i<=2; i++)
    {
      C[i] = fmod(pow(text[i],k_open),N);
      cout << C[i];
    }
    cout << endl;
    //√Д√•√Є√®√і√∞√Ѓ√Ґ√*√*√®√• √±√Ѓ√Ѓ√°√є√•√*√®√њ
    cout << "√Д√•√Є√®√і√∞√Ѓ√Ґ√*√*√*√Ѓ√• √±√Ѓ√Ѓ√°√є√•√*√®√•: " << endl;
    for (i=0; i<=2; i++)
    {
      M[i] = fmod(pow(C[i],k_secret),N);
      cout << M[i] << " ";
    }
    cout << endl;  
    system("pause");
    return 0;
}
ѕроблема в том, что цикл останавливает на заданном значении. ѕосоветуйте как исправить
0
Ќадоела реклама? «арегистрируйтесь и она исчезнет полностью.
Similar
Ёксперт
41792 / 34177 / 6122
–егистраци€: 12.04.2006
—ообщений: 57,940
10.03.2014, 22:10
«дравствуйте! я подобрал дл€ вас темы с ответами на вопрос Ќе работает цикл for (C++):

Ќе работает цикл for - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { int x; for(x=0; x&lt;10; x++); cout &lt;&lt; x &lt;&lt; &quot; &quot;; ...

Ќе работает цикл - C++
int Date::getYear() { int a; while (1) { cout&lt;&lt;&quot;Year: &quot;; cin&gt;&gt;a; if (a&gt;0||a&lt;10000) break; cout&lt;&lt;&quot;Error!&quot;&lt;&lt;endl; ...

Ќе работает цикл while - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { setlocale (0,&quot;Ukrainian&quot;); int chcount=0; int...

Ќе работает цикл - C++
почему i всегда 0 ? #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int main(void) { int j = 0; int n =...

Ќе работает цикл - C++
«адание к примеру ввожу матрицу 2х2 1 2 3 4 должно выдать 4 а выдаЄт 2 в чЄм проблема?

÷икл for не работает - C++
начал учить с++ дошол к циклам, написал вот такой код, а он видает только число 11, подскажите в чем проблема? #include &lt;iostream&gt; ...

7
Tulosba
:)
Ёксперт —++
4396 / 3232 / 297
–егистраци€: 19.02.2013
—ообщений: 9,045
10.03.2014, 22:42 #2
÷итата —ообщение от vyachesmine ѕосмотреть сообщение
что цикл останавливает на заданном значении.
что за заданное значение?  огда пишите цикл, используйте блок {} дл€ исключени€ недоразумений.
0
vyachesmine
7 / 7 / 1
–егистраци€: 19.02.2013
—ообщений: 22
10.03.2014, 22:46  [“—] #3
Tulosba, цикл останавливаетс€ на i=2.
0
Tulosba
:)
Ёксперт —++
4396 / 3232 / 297
–егистраци€: 19.02.2013
—ообщений: 9,045
10.03.2014, 22:53 #4
÷итата —ообщение от vyachesmine ѕосмотреть сообщение
цикл останавливаетс€ на i=2.
ј чему равно funcN при этом?
0
vyachesmine
7 / 7 / 1
–егистраци€: 19.02.2013
—ообщений: 22
10.03.2014, 23:08  [“—] #5
Tulosba, 20
0
kiborgdelto
71 / 73 / 27
–егистраци€: 23.03.2011
—ообщений: 141
10.03.2014, 23:23 #6
ошибка происходит в функции evklid(int a, int b), ты используешь в цикле while (ost != 0 ) переменную ost котора€ не определена, из-за этого и происходит ошибка: условие не может проверитьс€, либо определи эту переменную при задании int min,max,ost=1; либо используй цикл do-while()

ƒобавлено через 14 минут
и ещЄ такой вопрос это так и должно быть? (сам алгоритм незнаю поэтому и спрашиваю)
в результате работы программы k_open принимает своЄ последнее возможное значение (при i=19) а все возможные остальные значени€ игнорируютс€ (условие выполн€етс€ при i=3, i=7, i=9, i=11, i=13, i=17 и i=19)
0
vyachesmine
7 / 7 / 1
–егистраци€: 19.02.2013
—ообщений: 22
11.03.2014, 23:16  [“—] #7
kiborgdelto, как раз при i=3, i=7, i=9, i=11, i=13, i=17 и i=19 должно срабатывать, т.е. уже на i=3
0
kiborgdelto
71 / 73 / 27
–егистраци€: 23.03.2011
—ообщений: 141
11.03.2014, 23:32 #8
программа срабатывает при всех перечисленных i, но после окончани€ работы цикла в результате получаем последнее доступное значение счЄтчика i, если нужно остановитьс€ после 1-го срабатывани€ нужно добавить оператор прерывани€ break

C++
1
2
3
4
 if ((evklid(i,funcN) == 1) and (fmod(i,funcN) != 0)) {
k_open = i;
break;
}
0
11.03.2014, 23:32
MoreAnswers
Ёксперт
37091 / 29110 / 5898
–егистраци€: 17.06.2006
—ообщений: 43,301
11.03.2014, 23:32
ѕривет! ¬от еще темы с ответами:

Ќе работает цикл - C++
Ќе могу пон€ть почему не работает цикл. ќбъ€сните, пожалуйста. #include &lt;iostream&gt; using namespace std; int main(int...

Ќе работает цикл!!! - C++
Help!!!!! ѕочему не считает цикл... оп€ть где-то ошибс€ #include&lt;conio.h&gt; #include&lt;stdio.h&gt; #include&lt;math.h&gt; #include&lt;iostream&gt; ...

Ќе работает цикл while() - C++
ѕодскажите, почему в функции Viewfull() цикл срабатывает только на половину while (m1!=m2 &amp;&amp; y1!=y2) то есть только дл€ m1!=m2 void...

÷икл не работает - C++
¬от код // 2.cpp: определ€ет точку входа дл€ консольного приложени€. // #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include...


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

»ли воспользуйтесь поиском по форуму:
8
ќтвет —оздать тему
ќпции темы

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