#c
Вопрос:
#include <iostream>
using namespace std;
int
main ()
{
int number1, number2, sumatotala, choose, add, multiply;
add = "add";
multiply = "multiply";
cin>>choose;
cin>>number1;
cin>>number2;
if(choose = add) cout<<number1 number2;
if(choose = multiply) cout<<number1*number2;
return 0;
}
Это мой код, и у меня следующая ошибка.
main.cpp:17:9: ошибка: недопустимое преобразование из ‘const char*’ в ‘int’ [-fpermissive]
добавить = «добавить»;
^~~~~
main.cpp:18:14: ошибка: недопустимое преобразование из ‘const char*’ в ‘int’ [-fpermissive]
умножить = «умножить»;
^~~~~~~~~~
Я хочу сделать небольшую программу, которая позволит вам выбрать умножение или сложение и на основе вашего решения умножить или добавить 2 числа. Я не так хорошо кодирую, и если бы кто-нибудь мог мне помочь, я был бы очень благодарен.
Комментарии:
1. Как ты думаешь
add = "add";
, что именно это делает? Вы понимаете, чтоadd
это целое число?2. Ну, я подумал, что это даст переменной add строковое значение «добавить».
3. О, ты имеешь в виду, что добавить-это другой вид функции, и я не должен ее так называть ?
4. Спойлер:
if(choose = add)
не делает того, чего вы могли бы ожидать (и это верно для любого типа, который вы им даете).5. @Эпплер-это не
add
анint
? Как он может содержать строковое значение?
Ответ №1:
add = "add";
multiply = "multiply";
Здесь вам нужно либо использовать числа в качестве значений (потому что это целочисленные переменные), либо, если они нужны в качестве строк, вы должны удалить их из приведенной выше строки и записать их следующим образом:
std::string add = "add";
std::string multiply = "multiply";
Ответ №2:
Вы определяете как «добавить», так и «умножить» как int, но затем пытаетесь присвоить им строковые значения. Они должны быть определены отдельно, если вы хотите, чтобы они были строками.
int number1, number2, sumatotala, choose;
string add = "add";
string multiply = "multiply";