سوال ++C

C++/C

توسط elahe در 7 سال پیش
0 23.7k 3 7 سال پیش
elahe microsoftman reza
0

برنامه ای بنویسید که دو عدد و یک نوع عملگر را از ورودی خوانده و عملگرهای + و - و / و * و ^ را روی ان انجام دهد
مثلا اگر کاربر 4+6 رو وارد کرد 10 نشون بده.

0
#include<iostream.h>
#include<math.h>

void main()
{

float a,b;char op;;
      cin>>a;
      cin>>op;
	  cin>>b;

       switch (op)
       {
		case '*':cout<<"="<<a*b; break ;
		case '/':cout<<"="<<a/b; break ;
		case '+':cout<<"="<<a+b; break ;
		case '-':cout<<"="<<a-b; break ;
		case '^':cout<<"="<<pow(a,b); break ;
       }
	   cout<<endl;
}
0

ممنون
نمیشه کاری کرد که عدد ها و عملگر تو یه مرحله دریافت بشه؟

0

سلام
بله میشه اینو ببینید

//simple calc
//softafzar.net
#include <iostream>
#include <string>
#include <math.h>
int main()
{
	std::cout<<"Enter First number+operator+second number e.g. 4^2: ";
	std::string str;
	std::cin >> str;
  //find operation
  unsigned find = str.find_first_of("+-/*^");

  if (find!=std::string::npos)
  //if an operation found
  {
    //show first number
    std::string str1 = str.substr(0, find);
    std::cout << str1;

	//show operation
    char op = str[find];
    std::cout << op;

	//show second number
    std::string str2 = str.substr(find + 1);
    std::cout << str2;

	//convert string to double
    double a = atof(str1.c_str());
    double b = atof(str2.c_str());
	
	std::cout<<"=";
    switch (op)
    {
      case '*':
		  std::cout<< a * b;
        break;
      case '/':
        std::cout<< a / b;
        break;
      case '+':
        std::cout<< a + b;
        break;
      case '-':
        std::cout<< a - b;
        break;
      case '^':
        std::cout<< pow(a, b);
        break;
    }
    std::cout << '\n';
  }
  else{std::cout<<"Error:incorrect format\n";}


  return 0;
}

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.