就是例如 輸入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 電腦與網際網路 ➔ 程式設計
主要的錯誤是四個判斷運+,-,*,/的地方要用 == 而不是 =其他還好,不過不要都用"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⤋