С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458
1

Оператор цикла с условием

28.04.2016, 13:12. Показов 1670. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу разобраться как сделать что бы в программе написанной по этой задаче:
Дано натуральное число n. Выяснить входит ли цифра 3 в запись числа n, и поменять порядок цифр на обратный.

Выводило на печать слово "Ошибка" по else-у только 1 раз.
А не столько сколько цифр в числе.
Вот программа;

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
setlocale(LC_ALL, "Russian");
 
    int n,k;
    cin>>n;
 
    for(int i=0; n!=0; i++, n/=10)
    {
        if(n % 10 == 3)
        {
        while(n!=0)
        {
            k = n%10;   
            n = n/10; 
            cout << k;
        }
        }
        else
            cout<<"Ошибка";
    }
    system("pause");
    return 0;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2016, 13:12
Ответы с готовыми решениями:

Оператор цикла с условием
Дана непустая последовательность целых чисел, оканчивающаяся нулем. Найти: а) сумму всех чисел...

Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры.
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n...

Использование оператора цикла с предварительным условием <do …>
1. Составить программу, используя оператор цикла while, в соответствии с заданием. Вводить с...

Алгоритмы со сложным условием продолжения цикла
Начиная с января на счет клиента в начале месяца переводится Z руб. (заработная плата) и снимается...

5
68 / 67 / 59
Регистрация: 14.07.2013
Сообщений: 251
28.04.2016, 15:54 2
Вот так можно костыльно
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
#include <iostream>
#include <vector>
#include <math.h>
using namespace std;
int main(){
int n,k;
    cin>>n;
bool fl = false;
    for(int i=0; n!=0; i++, n/=10)
    {
        if(n % 10 == 3)
        {
          fl = true;
        while(n!=0)
        {
            k = n%10;
            n = n/10;
            cout << k << endl;
        }
        }
        else fl = false;
 
    }
if (!fl) cout << "Ошибка" << endl;
    return 0;
}
Но у вас все равно прога не правильно работает если цифра 3 не последняя в числе. Например 321 выводит только 3. А 123 выводит 321
1
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458
28.04.2016, 16:03  [ТС] 3
А как написать правильно скажите пожалуйста.
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
28.04.2016, 16:15 4
Лучший ответ Сообщение было отмечено Maxim09 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(){
int n,k;
    cin>>n;
 
bool fl = false;
 
    for(int i=0; n!=0; i++, n/=10)
    {
        if(n % 10 == 3) fl = true;
            cout << n%10 << endl;
    }
 
if (!fl) cout << "Ошибка" << endl;
    return 0;
}
1
68 / 67 / 59
Регистрация: 14.07.2013
Сообщений: 251
28.04.2016, 16:24 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
#include <iostream>
 
using namespace std;
int main(){
int n,k;
    cin>>n;
string rev_num="";
bool fl = false;
    k = n;
    while (k != 0){
      char c = k%10 + '0';
      rev_num+=c;
      if (k%10 == 3){
        fl = true;
      }
      k/=10;
 
    }
    if (fl){
      cout << "Rev_num: " << rev_num << endl;
    }
    else {
      cout << "Error" << endl;
    }
    return 0;
}
1
1 / 1 / 4
Регистрация: 23.08.2015
Сообщений: 458
28.04.2016, 17:30  [ТС] 6
Спс за прогу но как сделать чтоб эта прога печатала в обратном порядке только если в числе есть цифра 3.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
int n,k;
    cin>>n;
 
bool fl = false;
 
    for(int i=0; n!=0; i++, n/=10)
    {
        if(n % 10 == 3) fl = true;
            cout << n%10 << endl;
    }
 
if (!fl) cout << "Ошибка" << endl;
    return 0;
}
Попробовал через do while но не получилось.
0
28.04.2016, 17:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2016, 17:30
Помогаю со студенческими работами здесь

Как реализовать остановку цикла с условием cin >> a?
Здравствуйте. Программа пишет не более двух элементов в вектор, после нажатия Enter - их выводит....

Алгоритмы со сложным условием продолжением цикла (Оконное приложение)
26. Фирма желает открыть счет в коммерческом банке под р % годовых и накопить на нем сумму С $ для...

Использование условного оператора после операторов цикла с условием
Дана последовательность целых чисел, оканчивающаяся числом -1. Количество чисел в...

Использование условного оператора после операторов цикла с условием
Дана последовательность целых чисел, оканчивающаяся числом -1. Количество чисел в...

Использование условного оператора после операторов цикла с условием
Определить: а) является ли заданное число степенью числа 3. б) является ли заданное число...

оператор цикла WHILE
задание: написать програму при помощи оператора цикла WHILE для подсчета суммы ряда с точность...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru