利用運算符做為swich case 語句條件,實現簡單程式的編寫;並且對輸入的運算做判斷,除數為零也需做判斷; ...
利用運算符做為swich case 語句條件,實現簡單程式的編寫;並且對輸入的運算做判斷,除數為零也需做判斷;
1 #include<stdio.h> 2 3 int add(int a, int b); 4 int sub(int a, int b); 5 int mul(int a, int b); 6 int div(int a, int b); 7 8 9 int main(int argc, const char *argv[]) 10 { 11 /* 12 * 定義接收變數,運算字元; 13 */ 14 int a,b,d; 15 char ch; 16 17 /* 18 * 賦初值 19 */ 20 a = 0; 21 b = 0; 22 ch = '0'; 23 24 25 /* 26 * 控制台輸入運算變數,運算符; 27 */ 28 printf("請輸入需要計算的數及運算符;格式如:'num1 +-x/ num2' \n"); 29 scanf("%d%c%d",&a,&ch,&b); 30 31 /* 32 * 輸入數據判斷 33 */ 34 while((ch != '+')&&(ch != '-')&&(ch != '*')&&(ch != '/')) 35 { 36 //fflush(stdin);此種清空緩衝區無效 37 setbuf(stdin,NULL); 38 printf("輸入運算符有誤,請重新輸入:\n"); 39 scanf("%c",&ch); 40 } 41 42 /* 43 * 除數為0做判斷 44 */ 45 if((ch == '/')&&(b==0)) 46 { 47 setbuf(stdin,NULL); 48 printf("除數不能為0,請重新輸入:\n"); 49 scanf("%d",&b); 50 } 51 52 53 /* 54 * 識別不同運算字元,做不同的運算; 55 */ 56 switch(ch) 57 { 58 case '+': 59 printf("%d+%d=%d\n",a,b,add(a,b)); 60 break; 61 case '-': 62 printf("%d-%d=%d\n",a,b,sub(a,b)); 63 break; 64 case '*': 65 printf("%d*%d=%d\n",a,b,mul(a,b)); 66 break; 67 case '/': 68 printf("%d/%d=%d\n",a,b,div(a,b)); 69 break; 70 default: 71 printf("Error\n"); 72 } 73 74 return 0; 75 } 76 77 /* 78 * 定義運算函數 79 */ 80 int add(int a, int b) 81 { 82 return a+b; 83 } 84 85 int sub(int a, int b) 86 { 87 return a-b; 88 } 89 90 int mul(int a, int b) 91 { 92 return a*b; 93 } 94 95 int div(int a, int b) 96 { 97 return a/b; 98 }