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

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

Войти
Регистрация
Восстановить пароль
 
djarmanimoney
Сообщений: n/a
#1

Найти и исправить ошибки в приведенном коде - C++

22.10.2012, 22:12. Просмотров 420. Ответов 5
Метки нет (Все метки)

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
//#include <stdafx.h>
#include <iostream>
#include <math.h>
 
using namespace std;
 
void main ()
{
    setlocale (LC_ALL, "Russian");
    system ("color 70");
    cout<<"Перевод из двоичной системы в десятичную и обратно\n";
    //Ввод числа
    cout<<"Введите число:\n";
    int chislo;
    cin>>chislo;
    int i = 0;
    int chisloT = chislo;
    int rest = 1;
    //Определение числа разрядов
    while (chisloT >= 1 && rest <= 1)
        {
            rest = chisloT % 10;
            chisloT = chisloT / 10;
            i = i + 1;
        }
    int two = 1;
    int sum = 0;
    int summ=1;
    int d=1;
    int n;
    //===========
 
 
    chisloT = chislo;
    if (rest>1) 
        {
            //Проверка на двоичность
            cout<<"Это не двоичная система!\n";
    
        }
    else
        {
            //Цикл выполняется, если число двоичное
            while (i > 0)
                {
                    rest = chisloT % 10;
                    chisloT = chisloT / 10;
                    sum = sum + rest * two;
                    two = two * 2;
                    i = i - 1;
                         }
                    
                    n=sum;
                    int n, b=1, f=0, c;
                    while (sum!=0) 
                    {
                        c=sum%2;
                        n=sum/2;
                        if(c==1)  
                        {
                        b=b*10+1; 
                        i++;
 
                        for(i--; i!=0; --i)     //идем по каждому разряду Б (пока они не закончатся)
                            {
                                d=d*10+b%10 ;  //переписываем в конец Д последнюю цифру Б
                                b/=10;       //удаляем последнюю цифру из Б
                            }
                        }
                        
                        else        
                        b=b*10+0;
                        
                    }
 
 
                                
        //Вывод результатов
        cout<<"\nПеревод чисел из двоичной в десятичную систему счисления: \n"
        <<"В двоичной сс: "<<chislo<<endl
        <<"В десятичной сс: "<<sum<<endl;
        
        cout<<"\nПеревод чисел из десятичной в двоичную систему счисления: \n"
        <<"В десятичной сс: "<<sum<<endl
        <<"В двоичной сс: "<<d<<endl;
        }
    system ("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2012, 22:12     Найти и исправить ошибки в приведенном коде
Посмотрите здесь:

Найти и исправить ошибки в коде C++
C++ Найти и исправить ошибки в коде
C++ Исправить ошибки в приведенном коде
Задача о ранце. Исправить ошибки в приведенном коде C++
C++ Найти и исправить ошибки в коде
C++ Найти и исправить ошибки в приведенном коде
C++ Найти и исправить ошибки в приведенном коде, C++
Найти и исправить ошибки в приведенном коде C++
Найти и исправить ошибки в коде C++
Найти и исправить ошибки в коде C++
Найти и исправить ошибки в коде C++
C++ Найти и исправить ошибки в коде

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3062 / 1864 / 196
Регистрация: 13.01.2012
Сообщений: 7,087
23.10.2012, 09:08     Найти и исправить ошибки в приведенном коде #2
а где ошибка то? ну хоть бы сказали. компилятор ругается? если ругается то какими словами и на какую строку. программа падает? если падает, то что кричит перед смертью и на какой строке падает если запускать в режиме отладки. или просто препод подошел и сказал "эээ тут что то не так..." ну тогда не знаю, прости, много букв.
Памирыч
Почетный модератор
20558 / 8610 / 1028
Регистрация: 11.04.2010
Сообщений: 11,009
23.10.2012, 09:17     Найти и исправить ошибки в приведенном коде #3
djarmanimoney, прочитайте Правила. Из них Вы поймете, что нельзя так создавать темы
NeonLost
Пес войны
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
23.10.2012, 10:42     Найти и исправить ошибки в приведенном коде #4
C++
1
 for(i--; i!=0; --i)
это жопище...
C++
1
cin>>chislo;
упадет, если будет что-то кроме числа
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.10.2012, 14:19     Найти и исправить ошибки в приведенном коде #5
Если записать так, то, вроде бы, работает:
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>
#include <math.h>
 
using namespace std;
 
void main ()
{
    setlocale (LC_ALL, "Russian");
    system ("color 70");
    cout<<"Перевод из двоичной системы в десятичную и обратно\n";
    //Ввод числа
    cout<<"Введите число:\n";
    int chislo;
    cin>>chislo;
    int i = 0;
    int chisloT = chislo;
    int rest = 1;
    //Определение числа разрядов
    while (chisloT >= 1 && rest <= 1)
    {
        rest = chisloT % 10;
        chisloT = chisloT / 10;
        i = i + 1;
    }
    int two = 1;
    int sum = 0;
    int summ=1;
    int d=1;
    int n;
    //===========
 
 
    chisloT = chislo;
    if (rest>1) 
        {
            //Проверка на двоичность
            cout<<"Это не двоичная система!\n";
    
        }
    else
        {
            //Цикл выполняется, если число двоичное
        while (i > 0)
            {
                rest = chisloT % 10;
                chisloT = chisloT / 10;
                sum = sum + rest * two;
                two = two * 2;
                i = i - 1;
            }
                    
            n = sum;
            
    //        int n, b = 1, f = 0, c;
    //        while (sum != 0) // тут бесконечный цикл
    //        {
    //            
                //c = sum % 2;
    //            n = sum / 2;
    //            if(c == 1)  
    //            {
                //  cout << 'f';
                //  b = b * 10 + 1; 
                //  i++;
 
                //  for(i--; i != 0; --i)     //идем по каждому разряду Б (пока они не закончатся)
                //      {
                //          cout << 'w';
                //          d = d * 10 + b % 10 ;  //переписываем в конец Д последнюю цифру Б
                //          b /= 10;       //удаляем последнюю цифру из Б
                //      }
    //            }
    //            else  b = b * 10 + 0;     
    //        }
 
 
                                
        //Вывод результатов
        cout<<"\nПеревод чисел из двоичной в десятичную систему счисления: \n"
        <<"В двоичной сс: "<<chislo<<endl
        <<"В десятичной сс: "<<sum<<endl;
        
        cout<<"\nПеревод чисел из десятичной в двоичную систему счисления: \n"
        <<"В десятичной сс: "<<sum<<endl
        <<"В двоичной сс: "<<chislo<<endl;
        }
    system ("pause");
}
Что делает закоментированный мною цикл?
Миниатюры
Найти и исправить ошибки в приведенном коде  
NeonLost
Пес войны
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
23.10.2012, 16:23     Найти и исправить ошибки в приведенном коде #6
C++
1
b=b*10+0
не совсем понял зачем здесь 0
Yandex
Объявления
23.10.2012, 16:23     Найти и исправить ошибки в приведенном коде
Ответ Создать тему
Опции темы

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