Другие языки программирования и технологии

Ещё тупой вопрос по C++ :)

#include <iostream> #include <stdio.h> #include <conio.h> #include <math.h> using namespace std; main() { int a,b,c,d; cout << "a, b, c, d: " << endl; cin >> a >> b >> c >> d; if (a>b) and (a>c) and (a>d) then cout << "This is A" else if (b>a) and (b>c) and (b>d) then cout << "This is B" else if (c>a) and (c>b) and (c>d) then cout << "This is C" else cout << "This is D"; getch(); } Компилятор ошибки пишет, но не вижу где ошибки помогите :) Разве в си нету else if ?
Timati ))
Timati ))
3 336
#include <iostream>

using namespace std;

void main()
{
int a,b,c,d;
cout << "a, b, c, d: " << endl;
cin >> a >> b >> c >> d;

if ((a>b) && (a>c) && (a>d)) cout << "This is A";
else if ((b>a) && (b>c) && (b>d)) cout << "This is B";
else if ((c>a) && (c>b) && (c>d)) cout << "This is C";
else cout << "This is D";
cin.get();
cin.get();
}

1) функция должна иметь возвращаемый тип (в данном случае void)
2) условие в условных операторах должно находиться в круглых скобках .
3) в конце каждой строки должен стоять ;
4) and и or в C++ нету. Есть логическое "и" - && и логическое "или" - ||
5) then в С++ нет. логические блоки выделяются фигурными скобками { } Исключение - если в блоке всего 1 строка (как например в данном случае) - можно обойтись и без них. Например, если бы ты хотел кроме вывода, допустим, сохранять что-то в переменную это выглядело бы примерно так:

if ((a>b) && (a>c) && (a>d))
{
cout << "This is A";
test = "var 1";
}
else if ((b>a) && (b>c) && (b>d))
{
cout << "This is B";
test = "var 2";
}
else if ((c>a) && (c>b) && (c>d))
{
cout << "This is C";
test = "var 3";
}
else
{
cout << "This is D";
test = "var 4";
}

6) getch() = cin.get(); В данном примере написал cin.get() 2 раза т. к. иначе окно будет закрываться. Это известный баг компилятора, правда не помню в каких случаях он происходит
7) слишком много библиотек подключил. Для операций существующих в данном примере достаточно iostream'a
НЗ
Николай Зуев
5 703
Лучший ответ
Timati )) Спасибо, забыл общую скобку, как всегда по пустякам пишу :)
А ты уверен что это C++? Всё по-паскальному написано

Есть только перед else надо точку с запятой (;) ставить
А ещё в C/C++ нет then
а ещё условия должны быть в круглых скобках
А ещё в C/C++ нет оператора and, есть оператор &&

А ещё лучше заворачивать всё в {}

if( (a>b) && (a>c) && (a>d) ){cout << "This is A" ; }
else if( (b>a) && (b>c) && (b>d)) { cout << "This is B" ; }
else if (c>a) && (c>b) && (c>d) then { cout << "This is C" ; }
else { cout << "This is D" ; }
Какое нахрен then в С/С++?
Ну понятно что ошибка, ты же не расставил знаки ; и к тому же and такого тоже нет - юзай &&
И еще у тебя не хватает скобок.
Читай книжки. серьезно.
then нет
Timati )) Да это я вспомнил и убрал но всё равно ошибка
Timati )) уже решил :)
(c>a) and (c>b) and (c>d)
общей скобки не хватало
( (c>a) and (c>b) and (c>d) )