Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
1

Закрывается окно программы

05.09.2015, 05:03. Показов 2388. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ниже записан алгоритм. Получив на вход число x этот алгоритм печатает два числа a и b. Укажите такое наименьшее число x, что при вводе x программа печатает сначала 2 потом 0.
Си
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
void main()
{
   int x, a, b;
   scanf("%d", &x);
   a = 0; b = 1;
   while (x > 0){
       a = a+1;
       b = b*(x%10);
       x = x/10;
   }
   printf("%d\n%d", a, b);
}
я написал её на Си++:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
using namespace std;
int main()
{
    int x, a=2, b=1;
    cin>>x;
    a = 0; b = 1;
    while (x > 0){
        a = a + 1;
        b = b*(x % 10);
        x = x / 10;
    }
    cout << a << endl << b << endl;
    
}
Но после нажатия F5 и вбивания числа 20 возникает проблема о которой я написал в одной из прошлых тем черный экран сразу же после нажатия Enter погасает. И вообще хотелось бы уточнить про программирование вообще зачем вообще просчитывать в уме то что мне нужно вводить в черный экран разве нельзя после вбивания кода получить результат:
20
2
0
Эти сложности это особенность именно visual studio 2013? Или тогда как мне напечатать код чтобы всё это выводилось автоматически?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2015, 05:03
Ответы с готовыми решениями:

Окно программы неожиданно закрывается
Но она прерывается, сказали надо вставить getch(), а вот куда?) помогите #include &lt;iostream&gt; ...

Произвольно закрывается окно с программы
Добрый день! Учу С++ в Visual Studio 2013. Часто во время работы кода , после введения строки и...

Окно программы сразу закрывается
Не работает цикл for в конце. Если его поставить в начало то всё хорошо. Слишком долго борюсь очень...

Закрывается консольное окно
Стряпал код вида: #include &lt;iostream&gt; using namespace std; int main() { char ch; int...

16
56 / 50 / 22
Регистрация: 17.03.2014
Сообщений: 142
05.09.2015, 05:24 2
Добавь в конце функции main
C++
1
2
system("pause");
return 0;
1
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
05.09.2015, 05:41  [ТС] 3
Спасибо. Ну а как быть со второй частью моего вопроса?
0
56 / 50 / 22
Регистрация: 17.03.2014
Сообщений: 142
05.09.2015, 06:01 4
По поводу особенностей? Программа делает то, что ты ей скажешь и ничего кроме. Ты указал ряд инструкций, чтобы посчитать и вывести значения. Значения посчитаны и выведены, конец программы, консольное окно закрылось. Если хочешь задержку окна, ее надо запрограммировать.
А вообще это самые-самые основы языка, еще в первых примерах уровня Hello world объясняют, что это нужно указывать.
0
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
05.09.2015, 07:54  [ТС] 5
Ну я написал код на С++для схожей программы. Нужно указать наибольшее из таких чисел x при вводе которого алгоритм печатает сначала 2, а потом 5.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
using namespace std;
int main(){
    int x, a = 2, b = 5;
    cin >> x;
    a = 2; b = 5;
    while (x > 0){
        a = a + 1;
        b = b*(x % 100);
        x=x/100
    }
    cout << a << endl << b;
И программа работает, только мне непонятно почему в этом случае не нужно добавлять:

C++
1
2
system("pause");
return 0;
Добавлено через 1 час 32 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
using namespace std;
int main(){
int x, a = 2, b = 5;
cin >> x;
a = 2; b = 5;
while (x > 0){
a = a + 1;
b = b*(x % 100);
x=x/100
}
cout << a << endl << b;
И мне хотелось бы понять как мне изменить код в этой программе что сразу после нажатия f5 у меня выскакивало:
x
a
b
0
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
05.09.2015, 08:40 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    int x, a = 0, b = 1;
    cin >> x;
    while (x > 0)
    {
        ++a;
        b *= x % 10;
        x /= 10;
    }
    cout << a << endl << b << endl;
 
    system("pause");
}
0
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
05.09.2015, 08:49  [ТС] 7
nmcf ну да все запускается, но мне нужно не просто чтобы возникал черный в который нужно что-то вводить мне нужно чтобы на черном экране уже были написаны все значения.

Добавлено через 2 минуты
т.е. мне нужно чтобы программа сама всё считала.
0
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
05.09.2015, 08:50 8
x=10;
0
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
05.09.2015, 09:10  [ТС] 9
ture я понимаю что x=10; но x/=10; ВСЁ ТАКЖЕ РАБОТАЕТ. Просто смотри когда я создаю код для матриц у меня сразу возникает таблица и мне всё понятно (мне остается лишь смотреть чтобы значения не превышали какое то число).
Но в случае с алгоритмами все несколько сложнее, да и самое главное ведь вообще программа должна сама всё считать(и она естественно будет считать просто нужно написать немного другой код),мне просто хотелось бы написать более сложную и на самом деле полноценную программу.
0
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
05.09.2015, 11:08 10
Предлагаю завернуть в цикл for(int I=1;I<13;++I){ int x=I, a=0, b=1; ..... } вместо точек с 10 по 16 строки
0
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
05.09.2015, 11:13  [ТС] 11
Ты имеешь ввиду вместо while сделать for? И откуда мне взять int I?
0
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
05.09.2015, 11:14 12
wron10, я хотел сказать, что в теле цикла for будет цикл while
0
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
05.09.2015, 11:20  [ТС] 13
Ну да но мне просто как то не совсем понятно было слово завернуть. И у меня же не было переменной I в условии.
0
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
05.09.2015, 11:27 14
Папс копм отобрал, сейчас не могу весь код показать.
0
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
07.09.2015, 09:19 15
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>
 
 
int main() {
    /*циклом перебираем разные значения x     
    границы 8 и 12 можно менять как угодно и смотреть, что выдаст алгоритм
    */
    for(int i = 8; i < 12; ++i) {
        //отображаем текущее значение переменной х
        std::cout << i << ": " << std::endl;
 
        /*исходный алгорит:
        a - пересчитывает цифры
        b - накапливает произведение
        */
        int a = 0, b = 1 , x=i;     
        while(x > 0) {
            ++a;
            b *= x % 10;
            x /= 10;
        }
        std::cout << a << std::endl << b << std::endl << std::endl;
    }
 
    //заставляем подождать нас
    system("pause");
    return 0;
}
Добавлено через 6 минут
Поправил. Добавил переменную i , значение которой присваиваю x. Т.к. х потом меняется
0
-1 / 5 / 0
Регистрация: 14.07.2014
Сообщений: 128
07.09.2015, 11:40  [ТС] 16
Ну да но мне требовалось нечто немного другое просто мне хотелось чтобы сразу после закрытия программы a и b просчитывались и выводились на экран.То есть мне не нужно было бы вбивать в черный экран значения и нажимать Enter. Они сами бы вбивались. Вот как мне написать такой код например по предпоследней теме?
0
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
07.09.2015, 12:06 17
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
#include <iostream>
 
 
int main() {
    /*циклом перебираем разные значения x
    границы 8 и 12 можно менять как угодно и смотреть, что выдаст алгоритм
    */
    for(int i = 8; i < 12; ++i) {
        /*исходный алгорит:
        a - пересчитывает цифры
        b - накапливает произведение
        */
        int a = 0, b = 1, x = i;
        while(x > 0) {
            ++a;
            b *= x % 10;
            x /= 10;
        }
        if(a == 2 && b == 0) {
            std::cout << i << std::endl
                << a << std::endl
                << b << std::endl;
            break;
        }
    }
 
    //заставляем подождать нас
    system("pause");
    return 0;
}
0
07.09.2015, 12:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.09.2015, 12:06
Помогаю со студенческими работами здесь

Закрывается OpenGL окно
Пишу программу, которая работает с векторами, мне надо чтобы пользователь взаимодействовал с...

Закрывается консольное окно
Всем привет!!! Не пойму что мне делать,при компиляции появляется консольное окно и сразу...

Закрывается окно консоли
Здравствуйте! Я новичок в программирование. И желаю научиться C++ есть книга Джесс Либерти ...

окно всё равно закрывается....
Всем доброго времени суток! прочитал тему тут понял что в конце программы необходимо добавить...


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

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