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

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

Войти
Регистрация
Восстановить пароль
 
tegos-29
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 6
#1

Цикл - C++

08.08.2012, 18:17. Просмотров 348. Ответов 9
Метки нет (Все метки)

Начал изучать C++ неделю назад. Теперь начал решать некоторые задачи. И возникли у меня некоторые сложности с циклами... Требуется ваша помощь...

Задача:
Переведите натуральное число из двоичной системы в десятичную (в двоичном числе не более 10 цифр).

Решение:
C++ (Qt)
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int a;
    cin >> a;
    int d, b;
    int sum = 0;
    int i = 0;
    int k = 1;
    
    do
    {
            d = a % 10;
            b = a / 10;
            k = k * i;
            sum = sum + d * (2 * k);
            i ++;
    }
    while(0 <= b)
    
    cout << sum;
    
    return 0;
}
Где у меня ошибка??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2012, 18:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Цикл (C++):

Цикл: цикл for вообще никак не воспринимается транслятором - C++
Пишу программу, которая производит различные действия с одномерным массивом. Возникла следующая проблема: цикл for вообще никак не...

Почему цикл на при 1 уходит в бесконечный цикл? - C++
#define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { int x=0, y=0,...

Задание на цикл с параметром и цикл с постусловием - C++
Помогите пожалуйста написать программу с этими циклами. 1. Вычислить и напечатать таблицу значений функции Z= (e^-x)sinx для 0&lt;=x&lt;=П,...

Цикл for/Цикл while Помогите срочно пожалуйста... - C++
1.Вычислить и вывести на экран в виде таблицы значения функции F от x1 до x2 с шагом dx. где a, b и c - действительные числа. 2.Цикл...

Цикл с параметром и цикл с условием - C++
1. Составить программу вычисления суммы первых 10 непарных чисел 2. Дано числовой ряд и некоторое число &quot;епсила&quot;. Найти сумму...

заменить цикл for на цикл while - C++
#include &lt;iostream&gt; using namespace std; int main() { int N, M, sum; cout &lt;&lt; &quot;Введите число N:&quot; &lt;&lt; endl; ...

9
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
08.08.2012, 18:20 #2
Цитата Сообщение от tegos-29 Посмотреть сообщение
у меня некоторые сложности с циклами
какие?
кстати,неправильно вы переводите из одной системы в другую,в интернете,да и на этом форуме есть примеры,поищите и разберитесь
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.08.2012, 19:08 #3
Где у меня ошибка??
Поставьте ; после while(). Выход из while() у вас по значению b. В цикле b = a / 10. a в цикле не меняется, значит и b не изменится. Бесконечный цикл.
0
tegos-29
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 6
08.08.2012, 19:20  [ТС] #4
alsav22, Спасибо... исправил... но всё равно "ошибка компиляции"
исправил на это:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int a, d;
    
    cin >> a;
 
    int sum = 0;
    int  k  = 1;
    int  i  = 0;
    
        do
        {
            d = a % 10;
            a = a / 10;
            k = k * i;
            sum = sum + a * (2 * k);
            i ++;
            if (k == 0)
            {
                    k = 1;
            }
        }   
        while(0 <= a)
        
    cout << sum;
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.08.2012, 19:21 #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Поставьте ; после while().
Не вижу. 21 строку завершите ;
1
tegos-29
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 6
08.08.2012, 19:24  [ТС] #6
alsav22, поставил.. всё ок... спасибо..
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.08.2012, 19:31 #7
Цитата Сообщение от tegos-29 Посмотреть сообщение
alsav22, поставил.. всё ок... спасибо..
Код всё равно не рабочий. Бесконечный цикл. При делении на 10, значение a становится равным 0 и дальше не изменяется, а значит и выхода из while() нет. Прислушайтесь к совету alexey31415.
0
tegos-29
0 / 0 / 0
Регистрация: 02.08.2012
Сообщений: 6
08.08.2012, 19:35  [ТС] #8
alsav22, если а становится 0, то он выйдет из цикла так как я указал while(0 <= a); Не так ли?
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.08.2012, 19:49 #9
Цитата Сообщение от tegos-29 Посмотреть сообщение
Не так ли?
Не так. Это: 0 <= a - условие продолжения цикла. Если значение этого выражения true, то цикл будет продолжаться. При a равном 0, значение выражения 0 <= a, true.
0
zuzman322
1 / 1 / 0
Регистрация: 11.07.2012
Сообщений: 5
08.08.2012, 23:20 #10
вот вроде рабочий код :
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
#include <iostream>
#include <locale>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE,"russian");
    int i=0,a,b=0;
    bool c[10];
    cout<<"÷èñëî  : ";
    cin>>a;
    while(a!=0)
    {
               if(a%2==0)
               c[i]=0;
               else 
               c[i]=1;
               i=i+1;
               b=b+1;
               a=a/2;
               }
    cout<<"Гў äâîè÷Г*îé ñèñòåìå : ";
    for (int j=b-1;j>=0;j--)
    cout<<c[j];
    cout<<endl;
    system("pause");
    }
0
08.08.2012, 23:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2012, 23:20
Привет! Вот еще темы с ответами:

Изменить цикл for на цикл do-while - C++
помогите передать программу с цикла FOR в цикл DO-WHILE #include &lt;math.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace...

цикл While - C++
1.Найти произведение двухзначных нечетных чисел, кратных 13

цикл for - C++
Напишите программу, вычисляющую (где x – вещественное, k – целое) с использованием цикла for.

Цикл - C++
Добрый день.Помогите решить задачу с использыванием циклов: (1+2)+(1+2+3)+...+(1+2+3...+50) Заранее благодарен


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

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

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