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

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

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

do while - C++

19.11.2012, 18:47. Просмотров 280. Ответов 7
Метки нет (Все метки)

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
void rec(int a, int b)
    
{
    
    if(a==1)
        return;
    for(;;b++)
        if(a%b==0) //proverka delitssya li 4islo
        {
            cout<<"prostie mnozhiteli: "<<b<<endl;
            rec(a/b, b);
            return;
        }
}
int main()
{
    int a;
    cout<<"VVedite celoe chislo: "<<endl;
    cin>>a;
    rec(a, 2);
    getch();
   return 0;
}
вот програма работающая, мне надо что б я мог вводить числа постоянно. пока не нажму кнопку стоп... желательно сделать через do while..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
19.11.2012, 18:51 #2
C++
1
2
3
4
5
6
7
8
9
    char ch;
    cout<<"VVedite celoe chislo: "<<endl;
 
    do
    {
        cin.get(ch);
    }while (ch != '\n');
 
    rec(atoi(&ch), 2);
0
lastProg
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 22
19.11.2012, 18:54  [ТС] #3
у меня не получается разобратся с етим кодом ты можешь его вставить уже в мою прогу ? если не трудно...
0
HidForce
56 / 56 / 13
Регистрация: 17.11.2012
Сообщений: 1,602
19.11.2012, 20:43 #4
Вот готовый код, но тут цикл прерывается после ввода в консоль буквы S.
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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
void rec(int a, int b)
 
{
    if(a == 1)
    return;
 
    for( ; ; b++)
    if(a%b == 0)
        {
            cout << "Простые множители: " << b << endl;
            rec(a/b, b);
            return;
        }
}
 
int main()
{
    setlocale(LC_ALL, "rus"); // Подключение русского языка
 
    int x;
 
    do // Начало цикла
    {   int a;
        cout << "Введите целое число: " << endl;
        cin >> a;
        rec(a, 2);
 
      char s;
      cout << "Введите S, чтобы закончить выполнение программы" << endl;
      cin >> s;
 
      switch(s)
    {
        case 'S': x == 0;
        default: x == 1;
    }
 
        getch();
    }
    while (x == 1); // Конец цикла (цикл заканчивается при условии ввода S)
 
    return 0;
}
0
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
19.11.2012, 21:30 #5
Вот так будет лучше. По поводу моего первого поста - я неправильно понял суть вопроса.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main()
{
    setlocale(LC_ALL, "rus"); 
 
    char s;
    do // Начало цикла
    {
        system("cls");
        int a;
        cout << "Введите целое число: " << endl;
        cin >> a;
        rec(a, 2);
 
        s = _getch();
 
    }
    while (s != 's');
 
    return 0;
}
0
HidForce
56 / 56 / 13
Регистрация: 17.11.2012
Сообщений: 1,602
19.11.2012, 21:38 #6
Afflicted, тогда нужно подключить библиотеку stdlib.h для system("cls").
0
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
19.11.2012, 21:40 #7
HidForce, нет, <iostrean> отлично подходит.
0
HidForce
56 / 56 / 13
Регистрация: 17.11.2012
Сообщений: 1,602
19.11.2012, 21:49 #8
Afflicted, точно не знаю, но в CodeBlocks без stdlib.h не компилит почему-то.
0
Yandex
Объявления
19.11.2012, 21:49
Ответ Создать тему
Опции темы

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