2013 65438+2月23日12: 43: 46
目的:實現計算器。
*/
# include & ltstdio.h & gt
# include & ltctype.h & gt
# include & ltmath.h & gt
char get _ choice(void);//獲取用戶輸入的選項,建立目標。
char get _ first(void);//獲取用戶輸入的選項,排除錯誤輸入。
float get _ int(void);//獲取用戶輸入的計算值。
float add(void);//定義加法函數
浮點減法(void);//定義減法函數
浮點乘法(void);//定義乘法函數
浮動除法(void);//定義除法函數
漂浮提取物(無效);//定義根函數
浮方(void);//定義平方函數
浮動立方體(void);//定義三次函數
int count = 0;
int main(void)
{
char選擇;
Printf("***歡迎來到小錢做的計算器* * \ n ");
choice = get _ choice();
而(選擇!= 'q ')
{
開關(選擇)
{
案例“a”:
add();打破;
案例“b”:
減法();打破;
案例“c”:
乘法();打破;
案例“d”:
除法();打破;
案例“e”:
提取();打破;
案例“f”:
平方();打破;
案例“g”:
cube();打破;
默認值:
Printf("您輸入錯誤,請重新輸入:");打破;
}
fflush(stdin);
choice = get _ choice();
}
printf("拜拜");
返回0;
}
//獲取用戶輸入的選項,創建目錄。
char get_choice(void)
{
char ch
int a = 0;
//創建壹個目錄
printf(" \ n-\ n ");
Printf ("A .加法\t\t\tb。減法\nc。乘法\t\t\td。司\ n ");
Printf ("e. root \t\t\tf。方形\ng。多維數據集\t\t\tq。退出\ n ");
printf("-\ n ");
Printf("請輸入您的選項:");
ch = get _ first();
while(ch = = ' ' | | ch = = ' \ n ' | | ch = = ' \ t ')
ch = get _ first();
//判斷用戶輸入的選項是否錯誤。
而((ch & lta ' | | ch & gtg ')& amp;& ampch!='q ')
{
putchar(ch);
Printf("您輸入的選項不正確,請重新輸入:");
ch = get _ first();
}
返回ch;
}
//獲取用戶輸入的選項,排除錯誤輸入。
char get_first(void)
{
char ch
ch = getchar();
//消除用戶輸入選項時產生的換行符。
while(ch == '\n ')
{
ch = getchar();
}
返回ch;
}
//獲取用戶輸入的計算值。
float get_int(void)
{
浮點輸入;
char ch
int a;
if(count == 0)
Printf("親愛的!請輸入壹個數值:“);
if(count == 1)
Printf("親愛的!請輸入第壹個值:“);
if(count == 2)
Printf("親愛的!請輸入第二個值:“);
a = scanf("%f ",& amp輸入);
//判斷用戶輸入的是否是數值。
而(a!= 1)
{
//消除用戶輸入錯誤的字符。
while((ch = getchar())!= '\n ')
{
putchar(ch);
Printf("不是數值,請輸入例如3,111.2,或-1 ");
a = scanf("%f ",& amp輸入);
}
}
返回輸入;
}
//定義加法函數
浮點加法(void)
{
float i,j,sum
count = 0;
count = count+1;
I = get _ int();
count = count+1;
j = get _ int();
sum = I+j;
printf("%.2f + %.2f = %.2f\n ",I,j,sum);
返回總和;
}
//定義減法函數
浮點減法(void)
{
float i,j,sum
count = 0;
count = count+1;
I = get _ int();
count = count+1;
j = get _ int();
sum = I-j;
printf("%.2f - %.2f = %.2f\n ",I,j,sum);
返回總和;
}
//定義乘法函數
浮點乘法(無效)
{
float i,j,sum
count = 0;
count = count+1;
I = get _ int();
count = count+1;
j = get _ int();
sum = I * j;
printf("%.2f * %.2f = %.2f\n ",I,j,sum);
返回總和;
}
//定義除法函數
浮點除法(無效)
{
float i,j,sum
count = 0;
count = count+1;
I = get _ int();
count = count+1;
j = get _ int();
//判斷除數是否為0。
while(j == 0)
{
Printf("除數不能為0 \請重新輸入!!!\ n ");
j = get _ int();
}
sum = I/j;
printf("%.2f / %.2f = %.2f\n ",I,j,sum);
返回總和;
}
//定義根函數
浮動提取(無效)
{
float i,sum
count = 0;
I = get _ int();
//判斷根號是否小於0。如果小於0,讓用戶重新輸入。
while(我& lt0)
{
Printf("請輸入壹個大於0的數字\ n ");
I = get _ int();
}
sum = sqrt(I);
printf(" % . 2f的根等於%.2f\n ",I,sum);
返回總和;
}
//定義平方函數
浮動正方形(空)
{
float i,sum
count = 0;
I = get _ int();
sum = i * i
Printf("%.2f的平方等於%.2f\n ",I,sum);
返回總和;
}
//定義三次函數
浮動立方體(空)
{
float i,sum
count = 0;
I = get _ int();
sum = i * i * i
printf(" % f的立方等於%.3f\n ",I,sum);
返回總和;
}