سوال ++C

C++/C

توسط elahe در 5 سال پیش
0 1k 3 5 سال پیش
elahemicrosoftmanreza-irdev
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;
}

خوش آمدید

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

لطفا ابتدا لاگین کنید