2016-05-23 101 views
-1

指示的操作所以,我試圖編寫一個允許用戶輸入兩個整數然後運算符(加號或減號),並找出加/減兩個值的結果。編寫一個程序,接受兩個數字和一個運算符,如(+, - )作爲命令行參數,並執行操作符

例如,如果用戶類型:2 3 +
代碼會顯示:2 + 3 = 5

如果用戶忘記在加上加號或減號的錯誤消息應該拿出說invalid entry。到目前爲止,我只能編寫一個程序,它接受兩個分開編寫的整數,然後再添加一個整數。

#include <stdio.h> 
int main() { 
    int integer1, integer2, sum; // Declare 3 integer variables 

    printf("Enter first integer: "); // Display a prompting message 
    scanf("%d", &integer1);   // Read input from keyboard into integer1 
    printf("Enter second integer: "); // Display a prompting message 
    scanf("%d", &integer2);   // Read input into integer2 


    sum = integer1 + integer2;   // Compute the sum 

    // Print the result 
    printf("The sum of %d and %d is %d.\n", integer1, integer2, sum); 

    return 0; 
} 
+3

不要垃圾郵件語言標籤!你可能想先閱讀[問]。這個問題是什麼? – Olaf

+0

所以你問如何輸入操作員? – yano

回答

3

,你可以讀取整個表達式,如2 + 3,在一個scanf()語句,然後比較運營商來決定做什麼。

int integer1, integer2, sum;// Declare 3 integer variables 
    char oper;//this is where you read the operator as character 

    printf("Enter an expression: ");// Display a prompting message 

    // Read expression like 2+3,2 +3,2 + 3... from user 
    int res=scanf("%d %c%d", &integer1,&oper,&integer2); 

    //we expect 3 fields to be converted and assigned by scanf 
    if(res<3)//this will catch expressions like 2+h,... 
    { 
     printf("Input error"); 
     return 1; 
    } 

    switch(oper) 
    { 
     case '+': 
     sum = integer1 + integer2;// Compute the sum 
     printf("The sum of %d and %d is %d.\n", integer1, integer2, sum); 
     break; 
     case '-': 
     sum = integer1 - integer2;// Compute the difference 
     printf("The difference of %d and %d is %d.\n", integer1, integer2, sum); 
     break; 
     default: 
     printf("Invalid entry"); 
    } 
+0

哦,這是完美的!非常清楚,容易理解。 –

+0

@chux對!感謝您的反饋。 –

4

從用戶處獲取操作員並將其存儲爲字符。然後將運算符與加號「+」和減號「 - 」進行比較。如果它匹配其中之一,請執行該操作。如果沒有,請打印錯誤消息。

char operator; 

if(operator == '+') 
    sum = integer1 + integer2; 
else if(operator == '-') 
    sum = integer1 - integer2; 
else 
{ 
    printf("Error"); 
    return 0; 
} 
+0

可以說我想將所有的值(包括操作符)都包含在一行中,我該怎麼做呢? –

+0

看看bkVnet的答案。他做了很好的擴展我寫的內容並添加了你所問的功能。 – Hill

相關問題