نياز به كد نويسي

GraphX

Member
سلام
مي خواستم يه نفر اين برنامه رو برام بنويسه البته اگه زحمتي نيست

برنامه ای بنویسید که رشته ای شامل ارقام 0 تا 9 وعملگرها (یا کاراکتر های) + - * / را بخواند و حاصل عبارت را چاپ کند.
- رشته ورودی فقط شامل همین کاراکترها است.
- پرانتز نداریم.
- اولویت عملگر نداریم.
- عدد بیشتر از چهار رقمی وارد نمیشود.




ممنون از همه دوستان
 

the_king

مدیرکل انجمن
سلام
مي خواستم يه نفر اين برنامه رو برام بنويسه البته اگه زحمتي نيست

برنامه ای بنویسید که رشته ای شامل ارقام 0 تا 9 وعملگرها (یا کاراکتر های) + - * / را بخواند و حاصل عبارت را چاپ کند.​
- رشته ورودی فقط شامل همین کاراکترها است.​
- پرانتز نداریم.​
- اولویت عملگر نداریم.​
- عدد بیشتر از چهار رقمی وارد نمیشود.
[/size]​

کد:
#include <iostream>

using namespace std;

int main()
{
    char s[80];
    cout << "Please enter expression : " << endl;
    cin >> s;
    char op = 0;
    int i, x = 0, y = 0, err = 0;
    for (i = 0; s[i]; i++);
    s[i] = '=';
    s[i + 1] = 0;
    for (i = 0; (s[i]) && (err == 0); i++)
    {
        switch (s[i])
        {
            case ' ' :
                break;
            case '+' :
            case '-' :
            case '*' :
            case '/' :
            case '=' :
                switch (op)
                {
                    case 0 :
                        x = y;
                        break;
                    case '+' :
                        x += y;
                        break;
                    case '-' :
                        x -= y;
                        break;
                    case '*' :
                        x *= y;
                        break;
                    case '/' :
                        if (y == 0)
                        {
                            cout << endl << "Divide by zero." << endl;
                            err = 1;
                        }
                        else
                            x /= y;
                }
                y = 0;
                op = s[i];
                break;
            default :
                if ((s[i] >= '0') && (s[i] <= '9'))
                    y = y * 10 + s[i] - '0';
                else
                {
                    cout << endl << "Invalid character '" << s[i] << "'." << endl;
                    err = 1;
                }
        }
    }
    if (err == 0)
        cout << endl << "result = " << x << endl;
    return 0;
}
 

GraphX

Member
کد:
#include <iostream>

using namespace std;

int main()
{
    char s[80];
    cout << "Please enter expression : " << endl;
    cin >> s;
    char op = 0;
    int i, x = 0, y = 0, err = 0;
    for (i = 0; s[i]; i++);
    s[i] = '=';
    s[i + 1] = 0;
    for (i = 0; (s[i]) && (err == 0); i++)
    {
        switch (s[i])
        {
            case ' ' :
                break;
            case '+' :
            case '-' :
            case '*' :
            case '/' :
            case '=' :
                switch (op)
                {
                    case 0 :
                        x = y;
                        break;
                    case '+' :
                        x += y;
                        break;
                    case '-' :
                        x -= y;
                        break;
                    case '*' :
                        x *= y;
                        break;
                    case '/' :
                        if (y == 0)
                        {
                            cout << endl << "Divide by zero." << endl;
                            err = 1;
                        }
                        else
                            x /= y;
                }
                y = 0;
                op = s[i];
                break;
            default :
                if ((s[i] >= '0') && (s[i] <= '9'))
                    y = y * 10 + s[i] - '0';
                else
                {
                    cout << endl << "Invalid character '" << s[i] << "'." << endl;
                    err = 1;
                }
        }
    }
    if (err == 0)
        cout << endl << "result = " << x << endl;
    return 0;
}

ممنو از لطفت
دوست عزيز بدون ساختار switch مي توني واسم بنويسيش ؟
واقعاً ممنون از لطفت
 

GraphX

Member
از دوستان كس ديگه اي نيست كمكم كنه ! چند روز ديگه بايد به استاد تحويل بدم :cry:
 

جدیدترین ارسال ها

بالا