所以我的代碼會要求用戶輸入他想要執行的操作( - * /),然后是兩個數字。
基于此,一堆 if 陳述句將確定用戶想要什么型別的操作并計算結果。
我正在嘗試將所有這些簡化為一個功能,我該怎么做?
這是我嘗試過的,但沒有奏效:
這是我的舊代碼:我想將所有這些 if 函式簡化為影像之類的東西,一行可以完成所有這些。
float N1, N2, R;
char OP;
printf("Type the type of operation you want( - * /):");
scanf("%c",&OP);
fflush(stdin);
printf("Type your first number:");
scanf("%f",&N1);
fflush(stdin);
printf("Type your second number:");
scanf("%f",&N2);
fflush(stdin);
if (OP==' ') //ADDITION
{
R=N1 N2;
if (R==(int)R)
{
printf("Your result is: %i \n" ,(int)R);
}
else
{
printf("Your result is: %.2f \n",R);
}
}
else if (OP=='-') //SUBTRACTION
{
R=N1-N2;
if (R==(int)R)
{
printf("Your result is: %i \n",(int)R);
}
else
{
printf("Your result is: %.2f \n",R);
}
}
else if (OP=='*') //MULTIPLICATION
{
R=N1*N2;
if (R==(int)R)
{
printf("Your result is: %i \n",(int)R);
}
else
{
printf("Your result is: %.2f \n",R);
}
}
else if (OP=='/') //DIVISION
{
R=N1/N2;
if (R==(int)R)
{
printf("Your result is: %i \n",(int)R);
}
else
{
printf("Your result is: %.2f \n",R);
}
}
else
{
printf("Error. Please try again.");
}
system("pause");
return 0;
uj5u.com熱心網友回復:
你不能。某處需要有一個分支結構。
一個常見的(也是好的)方法是為operator ? function構建一個查找表。
對于真正快速的東西( O(1) ),您可以為自己構建一個完美的哈希映射。
對于超過四個運算子的作業,只需使用 O(n) 查找。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/507873.html
上一篇:給定n是10的互質數,如何找到僅由1組成的可以被n整除的最小數?
下一篇:從不同坐標系匯入變換矩陣
