#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
main()
{
int a,b;
char c;
do{
printf("請輸入一組整數算式: ");
scanf("%d%c%d",&a,&c,&b);
switch(c) {
case '+': printf("等於 %d",a+b); break;
case '-': printf("等於 %d",a-b); break;
case '*': printf("等於 %0.0lf",(double)a*b); break;
//超長整數請見
http://66.102.7.104/search?q=cache:t...&lr=lang_zh-TW
case '/': printf("等於 %0.2f",(float)a/b); break;
}
//if(c=='+') printf("%d%c%d=%d\n",a,c,b,a+b);
//else if(c=='-') printf("%d%c%d=%d\n",a,c,b,a-b);
//else if(c=='*') printf("%d%c%d=%d\n",a,c,b,a*b);
//else if(c=='/') printf("%d%c%d=%0.2f\n",a,c,b,(float)a/b);
printf("\n是否繼續跑一遍?(y/n)");
c=getch();
if(c=='N' || c=='n') break;//一成立就會跳出上一層的迴圈,在本題是 do{~}while(true);
printf("%c\n\n",c);
}while(true);
printf("\n\n即將退出本程式,");
system("PAUSE");
return 0;
}
以上藍字可用
c=getch();
printf("%c\n\n",c);
}while(c=='Y' || c=='y');
替換
其中除法也可改良一下
printf("等於 %0.2f",(float)a/b);
當 1/1000 時 會顯示 0.00
所以加一個判斷
if(a/b<0.01) printf("等於 %0.5f",(float)a/b);
變成
case '/':
float f;
f=(float)a/b;
if(f<=0.01) printf("等於 %0.5f",f);
else printf("等於 %0.2f",f);
}