Формулы сокращённого умножения

Можете сказать где ошибка в моем коде?

#include <iostream>
using namespace std;

int main ()
{
    setlocale(0, "");
    int a, b, c, d;
    cout << "Выберите формулу"<<endl;
    cout << "№1 (A+B)^2"<<endl;
    cout << "№2 (A-B)^2"<<endl;
    cout << "Я выбираю №";
    cin >> d;
    if(d == 1){
        cout << "A = ";
        cin >> a;
        cout << "B = ";
        cin >> b;
        cout << "("<<a<<"+"<<b<<")^2 = "<<a<<"^2+2*"<<a<<"*"<<b<<"+"<<b<<"^2 = ";
        int c = a*a+2a*b+b*b;
        cout << c <<endl;
    }else if (d == 2){
        cout << "A = ";
        cin >> a;
        cout << "B = ";
        cin >> b;
        cout << "("<<a<<"-"<<b<<")^2 = "<<a<<"^2-2*"<<a<<"*"<<b<<"+"<<b<<"^2 = ";
        int c = a*a-2a*b+b*b;
        cout << c <<endl;
    }else {
        cout << "Данного номера нет в списке"<<endl;
    }

    system("pause");
    return 0;
}

Компилятор пишет:

1>d:\users\слава_2\documents\visual
studio
2008\projects\рпп\рпп\апа.cpp(19) :
error C2059: синтаксическая ошибка:
неправильный суффикс для числа
— 1>d:\users\слава_2\documents\visual
studio
2008\projects\рпп\рпп\апа.cpp(19) :
error C2146: синтаксическая ошибка:
отсутствие «;» перед идентификатором
«a»
— 1>d:\users\слава_2\documents\visual
studio
2008\projects\рпп\рпп\апа.cpp(19) :
warning C4552: +: оператор не имеет
результата; требуется оператор с
побочным действием
— 1>d:\users\слава_2\documents\visual
studio
2008\projects\рпп\рпп\апа.cpp(27) :
error C2059: синтаксическая ошибка:
неправильный суффикс для числа
— 1>d:\users\слава_2\documents\visual
studio
2008\projects\рпп\рпп\апа.cpp(27) :
error C2146: синтаксическая ошибка:
отсутствие «;» перед идентификатором
«a»
— 1>d:\users\слава_2\documents\visual
studio
2008\projects\рпп\рпп\апа.cpp(27) :
warning C4552: +: оператор не имеет
результата; требуется оператор с
побочным действием

Так делать неправильно.

int c = a*a-2a*b+b*b;

Правильно так:

 int c = a*a-2*a*b+b*b;

Вы забыли поставить оператор умножения после двойки.

спасибо, помогло. а можно записать к примеру
int a = 3^5
или придётся писать
int a = 3 * 3 * 3 * 3 * 3
?

Можно подключить библиотеку <cmath> и использовать функцию std::pow из нее.

#include <iostream>
using namespace std;

int main()
{
    int a = 5;
    int result = pow(a, 10); // a в степени 10
    cout << result << endl;
    return 0.
}

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

Ответить

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

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

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

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

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

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