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

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

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

Подскажите в чем ошибка. - C++

12.12.2011, 20:07. Просмотров 212. Ответов 0
Метки нет (Все метки)

Я уже обращался на форум,помогли. Но столкнулся с рядом следующих проблем.

Программа работает как надо,НО в итоге выводит неправильный ответ.Подскажите,что добавить\исправить\удалить.

П.С. Извиняюсь за монотонность кода.

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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int main()
{
unsigned int i,a,b,h_tetr,l_tetr, temp_h_tetr, temp_l_tetr, x = 0x80000000, w = 0x0000000F, y = 0;
 
bool z = false;
 
  cin >> a;
    
      for (i = 0; i < sizeof(a)*8; i++)
{
 
y = a & x;
 
      if(y != 0)
{
    cout << "1";
++z;
}
   else
{
    if(z == true)
cout << "0";
}
x >>= 1;
}
x = 0x80000000;
z = false;
cout << endl;
 
int temp_l, temp_h;
 
for (i [=0] ; i
{
temp_h = 0x000000f0 << (i*8);
temp_l = 0x0000000f << (i*8);
 
cout <<"high = "<< (h_tetr = ((a & temp_h) >> (4+i*8))) << "\n";
cout <<"low = "<< (l_tetr = ((a & temp_l) >> (i*8))) << "\n";
 
temp_h_tetr = h_tetr;
temp_l_tetr = l_tetr;
 
h_tetr = ((~(temp_h_tetr ^ temp_l_tetr))&(w));
cout << h_tetr << endl;
l_tetr = ((~(temp_h_tetr & temp_l_tetr))&(w));
cout << l_tetr << endl;
h_tetr = (h_tetr << (4+i*8));
 
l_tetr = (l_tetr << (i*8));
 
if((temp_h_tetr != 0)&&(temp_l_tetr != 0))
{
a = ((a & (~(temp_h + temp_l))) + (l_tetr & h_tetr));
}
}
 
/*
b = (a & (~temp_h)) & h_tetr;
b = (a & (~temp_l)) & l_tetr;
}
 
a = b;
*/
cout << a << endl;
for (i = 0; i < sizeof(a)*8; i++)
{
y = (a & x);
if(y != 0)
{
cout << "1";
++z;
}
else
{
if(z == true)
cout << "0";
}
x >>= 1;
}
cout << endl;
system("Pause");
 
return 0;
}
Добавлено через 2 часа 42 минуты
задание само:

Старшую тетраду каждого байта числа заменить результатом операции «стрелка Пирса» старшей и младшей тетрад, а младшую тетраду – результатом операции «штрих Шеффера» старшей и младшей тетрад исходного байта
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2011, 20:07     Подскажите в чем ошибка.
Посмотрите здесь:

Подскажите, в чем ошибка? C++
C++ Подскажите в чем ошибка?!
подскажите в чем ошибка? C++
C++ Подскажите в чем ошибка
подскажите в чем ошибка C++
C++ Подскажите в чем ошибка
подскажите в чем ошибка? C++
Подскажите в чем ошибка! C++
C++ Подскажите в чем ошибка
C++ Подскажите в чем ошибка
C++ Подскажите, в чем ошибка?
C++ Подскажите, в чем ошибка?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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