查看單個文章
舊 2005-10-21, 03:23 PM   #19 (permalink)
mini
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:97 | 在線時長:9879小時 | 升級還需:117小時級別:97 | 在線時長:9879小時 | 升級還需:117小時級別:97 | 在線時長:9879小時 | 升級還需:117小時級別:97 | 在線時長:9879小時 | 升級還需:117小時級別:97 | 在線時長:9879小時 | 升級還需:117小時級別:97 | 在線時長:9879小時 | 升級還需:117小時級別:97 | 在線時長:9879小時 | 升級還需:117小時
註冊日期: 2002-12-07
文章: 13350
精華: 0
現金: 26465 金幣
資產: 3024345 金幣
預設

#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);
}
mini 目前離線  
送花文章: 2014, 收花文章: 8005 篇, 收花: 26810 次
回覆時引用此帖