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

Не работает прога - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Arver
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
20.07.2010, 23:11     Не работает прога #1
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
#include <iostream>
using namespace std;
int main()
{//Начало
int x,y;
cout<<"Vvedite chislo ";
cin>>x;
switch(x)
{   
case 0: cout<<"zero"; break;
case 1: cout<<"one"; break;
case 2: cout<<"two"; break;
case 3: cout<<"three"; break;
case 4: cout<<"four"; break;
default:
{
cout<<"Vvedite drugoe chislo";
cin>>y;
switch(y)
{
case 0: cout<<"zero"; break;
case 1: cout<<"one"; break;
case 2: cout<<"two"; break;
case 3: cout<<"three"; break;
case 4: cout<<"four"; break;
}
} 
}
for(;;) //Бесконечный цикл
{}
return 0;
}//Конец
Всем привет,хотелось бы узнать почему данная программа не работает.Да,еще также хочется узнать ответы на пару вопросов(не хочется создавать дополнительные темы).1)Почему считается ошибкой объявлять переменные,но не использовать их.2)Почему в 2 выражениях y=x++ y=(x++) у 'y' значения одинаковые
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2295 / 1665 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
20.07.2010, 23:18     Не работает прога #2
Arver, используйте теги выделения кода (над окном ввода сообщения, в данном случае C++) - читать невозможно.
Замените бесконечный цикл на:
C++
1
system("pause");
Цитата Сообщение от Arver Посмотреть сообщение
хотелось бы узнать почему данная программа не работает
В чем это выражается?
Цитата Сообщение от Arver Посмотреть сообщение
Почему считается ошибкой объявлять переменные,но не использовать их
Потому что если перменная не используется, то она не нужна, зачем ее тогда объявлять?
Цитата Сообщение от Arver Посмотреть сообщение
Почему в 2 выражениях y=x++ y=(x++) у 'y' значения одинаковые
В данном случае скобки не вляют на выполнение операции.
besstiaa
 Аватар для besstiaa
93 / 93 / 7
Регистрация: 04.06.2010
Сообщений: 223
20.07.2010, 23:27     Не работает прога #3
Программа работает. Другой вопрос, что от нее ждут. Вот немножко переделанная. Запрашиваетс число до тех пор, пока не будет введены 0,1,2,3 или 4.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
int main()
{//Начало
int x,y;
 
do
{
cout<<"Vvedite chislo ";
cin>>x;
switch(x)
{    
case 0: cout<<"zero"<<endl; break;
case 1: cout<<"one"<<endl; break;
case 2: cout<<"two"<<endl; break;
case 3: cout<<"three"<<endl; break;
case 4: cout<<"four"<<endl; break;
default: cout<<"Vvedite drugoe chislo (1-4)"<<endl;
}
}while (x < 0 || x > 4 );
system ("pause");
return 0;
}//Конец
Arver
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
20.07.2010, 23:36  [ТС]     Не работает прога #4
1)Скорее всего мало знаний,чтобы корректно ответить на вопрос "в чем это выражается".После прочтения про инструкцию switch захотелось практики,так как сам я ошибки не нашел,решил выложить на форуме.
2)Привычка с delphi объявлять переменные заранее...
3)Нe очень понятно, что значит в данном случае,скобки не влияют на результат...
jonson
 Аватар для jonson
231 / 204 / 61
Регистрация: 18.03.2010
Сообщений: 749
20.07.2010, 23:47     Не работает прога #5
Цитата Сообщение от Arver Посмотреть сообщение
Нe очень понятно, что значит в данном случае,скобки не влияют на результат...
Значит что y=x++; и y=(x++); одно и то же, скобки не влияют на результат.
Arver
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
20.07.2010, 23:53  [ТС]     Не работает прога #6
Цитирую "Круглые скобки повышают приоритет операций,содержащихся внутри них". Поэтому и непонятно, почему же значение x сразу присвается...
lex1990able
 Аватар для lex1990able
2 / 2 / 1
Регистрация: 22.04.2010
Сообщений: 37
21.07.2010, 00:09     Не работает прога #7
Попробуй после первой конструкции switch поставить ЗАКРЫВАЮЩУЮ скобку а 27 и 28 строки удалить.
jonson
 Аватар для jonson
231 / 204 / 61
Регистрация: 18.03.2010
Сообщений: 749
21.07.2010, 00:13     Не работает прога #8
а так вот ты о чем!
просто есть префиксная форма ++x и постфиксная x++
вот как раз в префиксной форме вначале значение x инкрементируется а потом присваевается.

т.е. y=x++; и y = ++x; это разные вещи
Arver
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
21.07.2010, 00:30  [ТС]     Не работает прога #9
Спасибо,поискал,почитал-стало все понятно,только вот,что за ошибка в программе,не понятно..lex1990able(пробовал все равно 1 ошибка)
besstiaa
 Аватар для besstiaa
93 / 93 / 7
Регистрация: 04.06.2010
Сообщений: 223
21.07.2010, 00:31     Не работает прога #10
Arver,если ошибка при компиляции, то сообщите ее полностью. Потому что у меня все компилируется, например.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7934 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
21.07.2010, 00:33     Не работает прога #11
Хм. Странно. Все пашет. Может вы скажете ошибку?

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
#include <iostream>
using namespace std;
int main()
{//Начало
int x,y;
cout<<"Vvedite chislo ";
cin>>x;
switch(x)
{       
case 0: cout<<"zero"; break;
case 1: cout<<"one"; break;
case 2: cout<<"two"; break;
case 3: cout<<"three"; break;
case 4: cout<<"four"; break;
default:
    {
cout<<"Vvedite drugoe chislo";
cin>>y;
switch(y)
{
case 0: cout<<"zero"; break;
case 1: cout<<"one"; break;
case 2: cout<<"two"; break;
case 3: cout<<"three"; break;
case 4: cout<<"four"; break;
}
} 
}
system("pause");
return 0;
}
Arver
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
21.07.2010, 00:38  [ТС]     Не работает прога #12
besstiaa ваш вариант работает,просто все же хотелось узнать,где именно у меня ошибка
besstiaa
 Аватар для besstiaa
93 / 93 / 7
Регистрация: 04.06.2010
Сообщений: 223
21.07.2010, 00:38     Не работает прога #13
Arver, ваша программа у меня тоже компилируется нормально. Может вы все-таки назовете ошибку?
Arver
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
21.07.2010, 00:51  [ТС]     Не работает прога #14
Пойду разбираться как выявить где допущена ошибка,потому как программа не хочет компилироваться,ах да,раз уж затронули тему компилятора.Пробовал компилировать через командную строку,цитирю из книжки "c:\...>cl -gx myprog.cpp" получаю ошибку,что "cl" не является внутренней или внешней командой,и тд
besstiaa
 Аватар для besstiaa
93 / 93 / 7
Регистрация: 04.06.2010
Сообщений: 223
21.07.2010, 01:07     Не работает прога #15
М... ну тут дело не в программе, а в компиляторе, точнее его присутствия. Так как через командную строку не компилировала никогда, так только гугл. Насколько я понимаю, приведенный пример, это для компилятора visual c++. А он есть у вас вообще?

To compile MyProg.cpp using Visual C++, you will use this command line.
C:\...>cl -GX MyProg.cpp
The –GX option enhances compilation. To use the Visual C++ command-line
compiler, you must first execute the batch file VCVARS32.BAT, which is provided
by Visual C++. (You will want to consult your Visual C++ documentation for details.)
To compile MyProg.cpp using C++ Builder, use this command line.
C:\...>bcc32 Sample.cpp
The output from a C++ compiler is executable object code. For a Windows
environment, the executable file will use the same name as the source file,
but have the .exe extension. Thus, the executable version of MyProg.cpp
will be in MyProg.exe.
Arver
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
21.07.2010, 01:14  [ТС]     Не работает прога #16
да, Microsoft Visual C++ 6.0
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7934 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
21.07.2010, 01:19     Не работает прога #17
Arver, Ставьте новее. Хотя бы 2005.
besstiaa
 Аватар для besstiaa
93 / 93 / 7
Регистрация: 04.06.2010
Сообщений: 223
21.07.2010, 01:28     Не работает прога #18
Visual Studio 2008, через командную строку тоже ваша программа компилируется нормально.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.07.2010, 05:29     Не работает прога #19
Arver,

используй отступы по три-четыре пробела, а то не понятно что где

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
    default:
        cout << "Vvedite drugoe chislo: ";
        
        cin >> y;
 
        switch (y) {
        case 0:
            cout << "zero";
            break;
        case 1:
            cout << "one";
            break;
        case 2:
            cout << "two";
            break;
        case 3:
            cout << "three";
            break;
        case 4:
            cout << "four";
            break;
        }
 
    }
 
    cout << endl;
один оператор - одна строка
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2010, 12:32     Не работает прога
Еще ссылки по теме:

почему не работает прога? C++
Не работает прога из учебника C++
вот прога почему то не работает C++
не работает прога на VS 2010 C++
C++ не работает прога

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

Или воспользуйтесь поиском по форуму:
Arver
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 68
21.07.2010, 12:32  [ТС]     Не работает прога #20
Спасибо всем за помощь.
Yandex
Объявления
21.07.2010, 12:32     Не работает прога
Ответ Создать тему
Опции темы

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