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

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

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

Оператор if - C++

08.02.2010, 22:36. Просмотров 955. Ответов 15
Метки нет (Все метки)

Почему у меня оператор Else выдает как ошибку(Е2054 Misplaced else)? и в операторе if не нравится как я записал if((s==a)&&(f==p)); ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<vcl.h>
#include<iostream.h>
void main(void)
{
const a=33,p=222222;
int s,f;
cout<<"vvedite ceriu pasporta- ";
cin>>s;
cout<<"vvedi nomer- ";
cin>>f;
if((s==a)&&(f==p));
cout<<"Vash rezyltat= 95"<<endl;
else 
cout<<"12";
system("pause");
}
да и еще вопрос
Как зделать так чтобы оператор if мог сравнивать буквы
пример (Серия паспорта) :
....
if (a=KD)
cout<<"Dthyj";
....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2010, 22:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Оператор if (C++):

Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 - C++
В С++ я ноль, помогите пожалуйста написать прогу Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 ...

Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки - C++
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли определённые трудности. Будьте добры, помогите решить. Буду...

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор * - C++
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...

Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости - C++
для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) - это оператор расширения области видимости.

Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->? - C++
#include &lt;iostream&gt; using namespace std; class random { public: void Set(int b){a=b;} int Get(){return a;} private: ...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
08.02.2010, 22:39 #2
XG9, а че там за точка с запятой после if? Получается, что else ни к чему не относится. Думай.
Maestro
Маэстро
Вирусоборец
1239 / 363 / 28
Регистрация: 06.09.2009
Сообщений: 780
08.02.2010, 22:39 #3
Цитата Сообщение от XG9 Посмотреть сообщение
if((s==a)&&(f==p));
Точка с запятой лишняя. делайте отступы в программе, это улучшит восприятие для других читающих ваш код.
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<vcl.h>
#include<iostream.h>
void main(void)
{
const a=33,p=222222;
int s,f;
cout<<"vvedite ceriu pasporta- ";
cin>>s;
cout<<"vvedi nomer- ";
cin>>f;
if((s==a)&&(f==p))
cout<<"Vash rezyltat= 95"<<endl;
else 
cout<<"12";
system("pause");
}
да и еще вопрос
Как зделать так чтобы оператор if мог сравнивать буквы
пример (Серия паспорта) :
....
if (a=KD)
cout<<"Dthyj";
....
XG9
0 / 0 / 0
Регистрация: 21.08.2009
Сообщений: 23
08.02.2010, 22:43  [ТС] #4
а почему он не к чему не относится, там же четко укзано что делать оператору else? а как тогда записать
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
08.02.2010, 22:47 #5
XG9, там четко сказано, что в предыдущей строке должен быть if, а его нет. Потому что между if и else еще строка с cout. А к if относится пустой оператор точка с запятой. Думай.

Добавлено через 53 секунды
XG9, в конце концов, добавь фигурные скобки и сам все увидишь.
XG9
0 / 0 / 0
Регистрация: 21.08.2009
Сообщений: 23
08.02.2010, 22:51  [ТС] #6
Цитата Сообщение от Vourhey Посмотреть сообщение
XG9, там четко сказано, что в предыдущей строке должен быть if, а его нет. Потому что между if и else еще строка с cout. А к if относится пустой оператор точка с запятой. Думай.

Добавлено через 53 секунды
XG9, в конце концов, добавь фигурные скобки и сам все увидишь.
я учусь в 10 классе и в школе изучал только pascal и то поверхносно, а С++ сам пробую освоить, так что мне не совсем понятно.
но всровно спасибо
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
08.02.2010, 22:53 #7
XG9, непонятно это нормально. Главное, сам попробуй найти причину.
Critical
3 / 3 / 0
Регистрация: 06.02.2010
Сообщений: 14
09.02.2010, 00:02 #8
Вот более красивый вариант:

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>
#include <stdio.h>
using namespace std;
int main()
{
   setlocale( LC_ALL,"Russian" );
   const long int a=33,p=222222;
   int s,f;
   cout<<"Введите серию паспорта: ";
   cin>>s;
   cout<<"Введите номер паспорта: ";
   cin>>f;
   if ((s==a)&&(f==p))
   {
      cout<<"Vash rezyltat= 95"<<endl;
   }
   else
   {
      cout<<"12";
   }
getchar();
return 0;
}
Твои возможные ошибка:
1. "const a=33,p=222222" - а тип разве не надо объявлять?
2. "if((s==a)&&(f==p));" - в конце точка с запятой не нужна.
3. Нету операторных скобок после объявления "ифа" и "элса".

Я только не пойму, что ты в конце хотел сделать, после ввода серии и номера паспорта?
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
09.02.2010, 03:04 #9
Цитата Сообщение от XG9
да и еще вопрос
Как зделать так чтобы оператор if мог сравнивать буквы
пример (Серия паспорта)
Для сравнения строк в C++ существует стандартная функция strcmp(), возвращающая 0 (!), если строки идентичны.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.02.2010, 03:14 #10
Цитата Сообщение от Critical
3. Нету операторных скобок после объявления "ифа" и "элса".
а зачем они там

C++
1
2
3
4
5
6
7
8
   if ((s==a)&&(f==p))
   {
      cout<<"Vash rezyltat= 95"<<endl;
   }
   else
   {
      cout<<"12";
   }
C++
1
2
3
4
    if (s == a && f==p)
        cout << "Vash rezyltat = 95" << endl;
    else
        cout << "12";
в теле if один оператор (определить можно по точке с запятой)
в теле else один оператор (определить можно по точке с запятой)
фигурные скобки ставятся тогда, когда нужно выполнить блок операторов
Critical
3 / 3 / 0
Регистрация: 06.02.2010
Сообщений: 14
09.02.2010, 07:33 #11
Цитата Сообщение от accept Посмотреть сообщение
фигурные скобки ставятся тогда, когда нужно выполнить блок операторов
Сам недавно начал учить...
В учебнике всегда со скобками, даже при одном операторе.
А вообще со скобами лучше смотрится, даже если один оператор
Пару байтов в весе программа приобретет, но зато в ней будет легче потом ориентироваться.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.02.2010, 11:06 #12
а, ну если в учебнике... :о))
opa_opa
3 / 3 / 0
Регистрация: 06.02.2010
Сообщений: 13
09.02.2010, 16:25 #13
Убери точку с запятой после IF.
XG9
0 / 0 / 0
Регистрация: 21.08.2009
Сообщений: 23
09.02.2010, 16:38  [ТС] #14
Цитата Сообщение от Critical Посмотреть сообщение
Вот более красивый вариант:
можешь объсянить чем отличается int main() от void main(void) и для чего служит эта команда
using namespace std;



Цитата Сообщение от Critical Посмотреть сообщение
Я только не пойму, что ты в конце хотел сделать, после ввода серии и номера паспорта?
Ничего, я проскто учусь и придумываю простенькие программы.
opa_opa
3 / 3 / 0
Регистрация: 06.02.2010
Сообщений: 13
09.02.2010, 16:46 #15
Цитата Сообщение от XG9 Посмотреть сообщение
можешь объсянить чем отличается int main() от void main(void)
В первом варианте main возвращает кое-то значение, во втором - нет. Оба варианта рабочие, но правильнее будет использовать int main(), чтоб по возвращаемому значению можно было определить - корректно ли завершилась программа.


Цитата Сообщение от XG9 Посмотреть сообщение
и для чего служит эта команда
using namespace std;
Подключает пространство имен std. Если не подключить, то при вводе\выводе cout, cin и пр. команды должны будут использоваться в стиле: std::cout, std::cin и т.д.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2010, 16:46
Привет! Вот еще темы с ответами:

Как перегрузить оператор<< и оператор>> ? - C++
Доброго времени суток. Застрял на двух вопросах и не как не могу найти инфу которвя мне помогла бы их решить. вопрос первый. В общем...

Оператор break как оператор go to next - C++
Подскажите, в этом примере break эквивалентна действию оператора go to next?

В Delphi есть оператор cost i of. и т.д. Есть ли в C++ такой же оператор? - C++
(C++ Builder XE5)

оператор for - C++
Написать программу, которая определяет максимальное число из введенной с клавиатуры последовательности положительных чисел (длина...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.02.2010, 16:46
Ответ Создать тему
Опции темы

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