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

сложение по модулю 2(проблема с массивом bool) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.79
sashqa93
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 17:38     сложение по модулю 2(проблема с массивом bool) #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
#include <math.h>
#include <conio.h>
using namespace std;
int main(){ 
int i;
bool m[100];
bool k[100];
bool e[100];
cout<<"press any kode:\n";
for(i=0;i<=100;i++){
cin>>m[i];} 
cout<<"press any key:\n";
for(i=0;i<=100;i++){
cin>>k[i]; }
e[i]=m[i] ^ k[i];
cout<<"shifr:\n"<<e[i];
m[i]=e[i] ^ k[i];
cout<<"kode:\n"<<m[i];
getch();
return 0;
}
второй массив для кода не могу прописать сразу вылетает.сразу вылетает.программа шифрует и дефишрует сообщение с нулями и еденицами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
amfisat
 Аватар для amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 235
29.04.2012, 17:56     сложение по модулю 2(проблема с массивом bool) #2
C++
1
e[i]=m[i] ^ k[i];
Это выражение - вне цикла. После выхода из последнего цикла i=101, т.е. e[101] = m[101] ^ k[101]; - наверняка это не то, что нужно )))
sashqa93
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 18:10  [ТС]     сложение по модулю 2(проблема с массивом bool) #3
да проблема даже в том, что я не могу прописать второй массив для ключа.первый прописываю 01011 а второй тоже надо прописать с нулями и единицами но прога вылетает
amfisat
 Аватар для amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 235
29.04.2012, 21:02     сложение по модулю 2(проблема с массивом bool) #4
Я про это и говорю.
C++
1
2
3
4
5
6
for(i=0;i<=100;i++)
{  //начало цикла
cin>>k[i]; 
 } //конец цикла
//здесь уже переменная i = 101.
e[i]=m[i] ^ k[i];
sashqa93
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 21:16  [ТС]     сложение по модулю 2(проблема с массивом bool) #5
так вот я не знаю как исправить ее, чтобы работала.нужно чтобы на выходе не 101 было а в память массива то что я пропишу
grizlik78
29.04.2012, 21:20
  #6

Не по теме:

Лично у меня исключение в мозгу возникает всякий раз при попытке прочитать текст программы. Стоило, всё-таки, аккуратно расставить отступы и скобки, для начала.

Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
29.04.2012, 21:29     сложение по модулю 2(проблема с массивом bool) #7
у вас массив из 100 элементов, а в цикле выходит 101 итерация.
замените
C++
1
2
3
4
5
for(i=0;i<=100;i++)
на 
for(i=0;i<100;i++)
или на 
for(i=0;i<=99;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
#include <iostream.h>
#include <math.h>
#include <conio.h>
 
using namespace std;
 
int main()
{ 
    int i;
    bool m[100];
    bool k[100];
    bool e[100];
    cout<<"press any kode:\n";
    for(i=0;i<100;i++)
    {
        cin>>m[i];
    } 
    cout<<"press any key:\n";
    for(i=0;i<100;i++)
    {
        cin>>k[i]; 
        e[i]=m[i] ^ k[i];
        cout<<"shifr:\n"<<e[i];
        m[i]=e[i] ^ k[i];
        cout<<"kode:\n"<<m[i];
    }
    getch();
    return 0;
}
sashqa93
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 21:56  [ТС]     сложение по модулю 2(проблема с массивом bool) #8
все равно не работает.key тоже вводить надо
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
29.04.2012, 22:10     сложение по модулю 2(проблема с массивом bool) #9
http://s1.ipicture.ru/uploads/20120429/FvWWtUOH.jpg
все работает
sashqa93
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 14
29.04.2012, 22:16  [ТС]     сложение по модулю 2(проблема с массивом bool) #10
так то работает но не совсем как надо в шифре.код вводится одна цифра а нужно например так же как и сам код 00011 и ключ такой же длины
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2012, 22:52     сложение по модулю 2(проблема с массивом bool)
Еще ссылки по теме:

Сложение по модулю 2 C++
Как выполнить сложение по модулю 2^64+13 C++
C++ Изменить значение bool a = true в bool a = false

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

Или воспользуйтесь поиском по форуму:
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
29.04.2012, 22:52     сложение по модулю 2(проблема с массивом bool) #11
как-то вы непонятно излагаете свои мысли)
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
int main()
{
 
    int i;
    bool m[5];
    bool k[5];
    bool e[5];
    cout<<"press any kode:\n";
    for(int i = 0; i < 5; i++)
    {
        cin >> m[i];
    }
 
    cout<<"press any key:\n";
    for(i = 0; i < 5; i++)
    {
        cin >> k[i];
        e[i] = m[i] ^ k[i];
        m[i] = e[i] ^ k[i];
    }
 
    cout<<"shifr: ";
    for(i = 0; i < 5; i++)
    {
        cout << e[i];
    }
 
    cout<<"\nkode: ";
    for(i = 0; i < 5; i++)
    {
        cout << m[i];
    }
    getch();
    return 0;
}
Yandex
Объявления
29.04.2012, 22:52     сложение по модулю 2(проблема с массивом bool)
Ответ Создать тему
Опции темы

Текущее время: 15:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru