Требуется точка с запятой ";" там где по идее ее не должно быть

#include <iostream>
using namespace std;

int main()
{
    setlocale(0, "");
    int i, a, b;
    int sum = 0;

    cout << "Введите число с которого нужно начать отсчет: ";
    cin >> a;
    cout << "Введите число которым нужно закончить отсчет: ";
    cin >> b;

    if (a < b) 
    {
        for (i = a; i <= b; i = i + 1)
            sum = sum + i;
    }
    else if (a > b) 
    {
        for (i = b; i <= a; i = i + 1)
            sum = sum + i;
    }
    else (a == b) 
    {
        sum = a;
    }

    cout << "Сумма чисел от " << a << " до " << b << " = " << sum << endl;

    system("pause");
    return 0;
}

Пытаюсь сделать калькулятор суммы чисел от a до b. Чтобы человек мог сам выбрать число и оно посчитало сумму. С этим я справился, но решил что этого мало, потому что можно считать сумму только если a < b. А если охота посчитать от 1000 до 1 (где a > b)? Или вообще извратится и посчитать от 10 до 10 (где a = b)? Понимаю что практическое применение такое себе, но если чисто теоретически предположить что нам нужно именно так.

Появилась проблема:
В отрывке

else (a == b) 
    {
        sum = a;
    }   

в первой фигурной скобке «{», пишет — «требуется точка с запятой» хотя по идее, там она ни к чему. Как исправить ситуацию? Может я конечно туп, и если это так — подтвердите это и скажите в чем я туплю :D

else (a == b)

else if (a == b)

А если охота посчитать от 1000 до 1 (где a > b)?

То достаточно обменять значение a и b.

Или вообще извратится и посчитать от 10 до 10 (где a = b)?

То вообще делать ничего не надо.

Итого:

//...
cin >> b;
if (b < a) 
    swap(a, b);//Или по-другому обменять значения местами
for (i = a; i <= b; ++i)
    sum += i;
cout << "Сумма чисел от " << a << " до " << b << " = " << sum << endl;

А есть еще способ вычисления без циклов. ;)

последний пишется как просто elso

Там просто else, а у тебя не просто else, а else (a == b), отсюда и ошибка синтаксиса. Либо добавь if, либо убери (a == b).

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.