我对 C 中的模数很困惑。我正在编写一个小脚本,允许用户输入他们的两个数字变量,然后他们可以加、减、乘、除(简单)或模数(还没有捕获这一个)。我会做错什么?我收到“二进制 % 的无效操作数”错误,这意味着我需要将其格式化为 int,因为它是一个 float 。但是,使用以下方法执行此操作的最佳方法是什么?任何 C 帮助将不胜感激。
int main (void)
{
float number1, number2, result;
char symbol;
//allow user interaction
printf("Enter your formula: \n");
scanf("%f %c %f", &number1, &symbol, &number2);
switch (symbol) {
case '%':
result = number1 % number2;
printf("Result: %f \n", result);
break;
default:
printf("Operation Error. Program aborted. \n \n");
break;
}
printf("Press any key to continue \n");
getchar();
return 0;
}
我在哪里以及如何转换它?
您可以使用如下语句:
result = (int)number1 % (int)number2;
将您的 float 转换为整数并执行取模运算,但您将失去小数精度。
您还可以包含 math.h 并使用 fmod
result = fmod(number1, number2);
我是一名优秀的程序员,十分优秀!