Дана строка. Содержащая 3 целых числа и знаки мат. операций +,-*, вычислить значение этого выражения.
пример:
12*3+100
на выходе:
136
C/C++
Помогите пожалуйста написать программу на C++. Срочно нужно, пожалуйста.
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a;
char x = cin.get();
cin >> b;
char y = cin.get();
cin >> c;
long long res;
if (x == '*') {
res = long long(a) * b;
if (y == '*') res *= c;
else if (y == '+') res += c;
else res -= c;
} else if (y == '*') {
res = long long(c) * b;
if (x == '+') res += a;
else res = a - res;
} else if (x == '+') {
res = long long(a) + b;
if (y == '+') res += c;
else res -= c;
} else {
res = long long(a) - b;
if (y == '+') res += c;
else res -= c;
}
cout << res << '\n';
system("pause > nul");
}
using namespace std;
int main() {
int a, b, c;
cin >> a;
char x = cin.get();
cin >> b;
char y = cin.get();
cin >> c;
long long res;
if (x == '*') {
res = long long(a) * b;
if (y == '*') res *= c;
else if (y == '+') res += c;
else res -= c;
} else if (y == '*') {
res = long long(c) * b;
if (x == '+') res += a;
else res = a - res;
} else if (x == '+') {
res = long long(a) + b;
if (y == '+') res += c;
else res -= c;
} else {
res = long long(a) - b;
if (y == '+') res += c;
else res -= c;
}
cout << res << '\n';
system("pause > nul");
}
#include <iostream>
#include <string>
#include <cstdlib>
#include <cctype>
int seniority(char c)
{
if (c == '+' || c == '-') return 2;
else if (c == '*') return 1;
else return 0;
}
using namespace std;
int main()
{
string str;
cin >> str;
int A,B,C,Sum = 0;
char op1, op2;
int i = 0;
int x = 0, y = 0, z = 0;
char Tmp[str.length()+1];
for(; isdigit(str[i]) && i < str.length(); i++)
Tmp[x++] = str[i];
Tmp[x] = '\0';
A = atoi(Tmp);
//cout << "A = " << A << endl;
op1 = str[i++];
//cout << "op1 = " << op1 << endl;
for(; isdigit(str[i]) && i < str.length(); i++)
Tmp[y++] = str[i];
Tmp[y] = '\0';
B = atoi(Tmp);
//cout << "B = " << B << endl;
op2 = str[i++];
//cout << "op2 = " << op2 << endl;
for(; isdigit(str[i]) && i < str.length(); i++)
Tmp[z++] = str[i];
Tmp[z] = '\0';
C = atoi(Tmp);
//cout << "C = " << C << endl;
if (! seniority(op1) ) cerr << "Неправильный первый оператор." << endl;
else if (! seniority(op2) ) cerr << "Неправильный второй оператор." << endl;
else
{
if ( seniority(op1) <= seniority(op2) )
{
if (op1 == '+')
Sum += (A+B);
else if (op1 == '-')
Sum += (A-B);
else if (op1 == '*')
Sum += (A*B);
if (op2 == '+')
Sum += C;
else if (op2 == '-')
Sum -= C;
else if (op2 == '*')
Sum *= C;
}
else
{
if (op2 == '*')
Sum = B*C;
if (op1 == '+')
Sum += A;
else if (op1 == '-')
Sum -= A;
}
}
cout << Sum << endl;
return 0;
}
#include <string>
#include <cstdlib>
#include <cctype>
int seniority(char c)
{
if (c == '+' || c == '-') return 2;
else if (c == '*') return 1;
else return 0;
}
using namespace std;
int main()
{
string str;
cin >> str;
int A,B,C,Sum = 0;
char op1, op2;
int i = 0;
int x = 0, y = 0, z = 0;
char Tmp[str.length()+1];
for(; isdigit(str[i]) && i < str.length(); i++)
Tmp[x++] = str[i];
Tmp[x] = '\0';
A = atoi(Tmp);
//cout << "A = " << A << endl;
op1 = str[i++];
//cout << "op1 = " << op1 << endl;
for(; isdigit(str[i]) && i < str.length(); i++)
Tmp[y++] = str[i];
Tmp[y] = '\0';
B = atoi(Tmp);
//cout << "B = " << B << endl;
op2 = str[i++];
//cout << "op2 = " << op2 << endl;
for(; isdigit(str[i]) && i < str.length(); i++)
Tmp[z++] = str[i];
Tmp[z] = '\0';
C = atoi(Tmp);
//cout << "C = " << C << endl;
if (! seniority(op1) ) cerr << "Неправильный первый оператор." << endl;
else if (! seniority(op2) ) cerr << "Неправильный второй оператор." << endl;
else
{
if ( seniority(op1) <= seniority(op2) )
{
if (op1 == '+')
Sum += (A+B);
else if (op1 == '-')
Sum += (A-B);
else if (op1 == '*')
Sum += (A*B);
if (op2 == '+')
Sum += C;
else if (op2 == '-')
Sum -= C;
else if (op2 == '*')
Sum *= C;
}
else
{
if (op2 == '*')
Sum = B*C;
if (op1 == '+')
Sum += A;
else if (op1 == '-')
Sum -= A;
}
}
cout << Sum << endl;
return 0;
}
#include iostream
int main(){
cout << 12*3+100 << "\n";
return 0;
}
iostream поместить в <>
int main(){
cout << 12*3+100 << "\n";
return 0;
}
iostream поместить в <>
Михаил Вятсон
Красавчик :D
Похожие вопросы
- Помогите пожалуйста написать программу на C++. Очень нужно!
- Помоги пожалуйста написать программу на C++
- Помогите, пожалуйста, написать программу на C++ (массивы)
- Помогите пожалуйста написать программу на C
- Здравствуйте, помогите пожалуйста написать программу на C++ с использованием функций
- Помогите пожалуйста написать программу небольшую в C++. Одномерный массив
- Здравствуйте, помогите пожалуйста написать программы на языке C++.
- Помогите пожалуйста написать программу на Си
- Помогите пожалуйста написать код на c++, выводящий имя, фамилию и дату рождения нескольких человек
- Помогите пожалуйста написать код на C++
эту строку нужно было написать выше функции seniority(), хотя и так программа работает.