English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

就是例如 輸入6 , 3
再輸入 * 就會輸出18

我的程式如下:
#include

using std::cin;
using std::cout;
using std::endl;
int a;
int b;
int sum;

char op;

int main()
{
cout<<\"please Enter first number\\n\";
cin>>a;

cout<<\"please Enter second number\\n\";
cin>>b;

cout<<\"please Enter op\\n\";

cin>>op;

if(op=\'+\')
{
cout<<\"sum is\"< }
else

if(op=\'-\')
{
cout<<\"sum is\"< }
else

if(op=\'*\')
{
cout<<\"sum is\"< }
else
if(op=\'/\')
{
cout<<\"sum is\"< }


return 0;
}

怎麼寫都不對>\"<
請教教我吧~~~

2006-07-23 12:25:21 · 4 個解答 · 發問者 ? 2 in 電腦與網際網路 程式設計

4 個解答

主要的錯誤是四個判斷運+,-,*,/的地方要用 == 而不是 =其他還好,不過不要都用"sum is".

2006-07-23 13:36:05 · answer #1 · answered by chan 5 · 0 0

我直接先用 C 語言做說明…
下面是我的寫法,先找出符號,再取出字串,做計算,得出結果。

//Power by Microsoft Visual Studio 2005
//可以使用 Dev-C++ 編譯此程式
#include
#include
#include
#define LENGTH 256
int main(int argc,char *argv[]){
//=====START=====//
int integer[2],nResult,i=0;
char chString[LENGTH],chSEP[]="+-*/",*ptrToken,chMark;
printf("Input a expression: ");
scanf("%s",chString);
for(i=0;i<4;i++){
if(strchr(chString,chSEP[i])!=NULL){
chMark=chSEP[i];
break;
}
}
i=0;
ptrToken=strtok(chString,chSEP);
while(ptrToken!=NULL){
integer[i++]=atoi(ptrToken);
ptrToken=strtok(NULL,chSEP);
}
switch(chMark){
case '+':
nResult=integer[0]+integer[1];
break;
case '-':
nResult=integer[0]-integer[1];
break;
case '*':
nResult=integer[0]*integer[1];
break;
case '/':
nResult=integer[0]/integer[1];
break;
}
printf("Result: %d\n",nResult);
//=====END=====//
system("PAUSE");
return 0;
}

2006-07-24 01:05:00 · answer #2 · answered by Big_John-tw 7 · 0 0

如果你還是不知如何修改,這裡有修改完後的程式碼,請過目:
http://img107.imageshack.us/img107/9592/0723cg1.jpg

2006-07-23 14:24:46 · answer #3 · answered by Almond 6 · 0 0

你的判斷是寫錯了...
舉其中一個來看
if(op='+' ) ===>>這樣寫會變成 把op給值為 '+'
{
.....
}
所以你只要把每個 if 內的判斷是改成 if(op == '+'),
這樣就可以了...(要注意 = 與 == 是不一樣的)

2006-07-23 13:37:15 · answer #4 · answered by Jason 2 · 0 0

fedest.com, questions and answers