c++ - C++,错误:表达式必须具有整数或无范围枚举类型
问题描述
所以我有这个代码。
#include <stdio.h>
int main()
{
float S, Y, P;
printf("Sisestage laenusumma eurodes:\n");
scanf("%f", &S);
printf("Sisestage laenuperiood aastades:\n");
scanf("%f", &Y);
printf("Sisestage intressim44r protsentides:\n");
scanf("%f", &P);
float K, T;
K = (S * (P / 100 / 12)) / (1 - (1 + (P / 100 / 12)) ^ (-Y * 12));
T = K * Y * 12;
printf("Laenusummaga %.2f eurot %.2f intressim44raga te peate maksma %.2f eurot kuus %.2f aastat. Ja kokku maksate pangale %.2f eurot.", S, P, K, Y, T);
scanf("%f", &S);
}
(括号中的语言是爱沙尼亚语,如果有人对此感到好奇)
现在我的问题是,在
K = (S * (P / 100 / 12)) / (1 - (1 + (P / 100 / 12)) ^ (-Y * 12));
第一个 '1' 和 -Y 之前的 '(' 下有一个错误。我在他们两个上得到的错误都是expression must have integral or unscoped enum type
.
我已经看过一些关于这些的帖子,但我仍然不明白如何解决它。
有效的一件事是将浮点 S、Y、P 更改为 int,但我需要将它们设为浮点数。
非常感谢您的帮助。
解决方案
^
用于按位运算(xor),而不是幂。
你可以std::powf
改用。
K = std::powf((S * (P / 100 / 12)) / (1 - (1 + (P / 100 / 12))), -12 * Y);
推荐阅读
- java - Using self-referential generic types in Java
- python - Python36\Scripts starts on wrong python version
- machine-learning - Difference between OpenAI Gym environments 'CartPole-v0' and 'CartPole-v1'
- html - 我想使文本居中一点,但它跳到了新行
- java - android pie 9.0 mobile:org.json.JSONException:java.lang.String类型的值CLEARTEXT无法转换为JSONObject
- python - Python中的按钮点击计数器
- java - 以编程方式禁用“音量键快捷键”
- javascript - React-final-form 在某些表单字段上触发验证
- javascript - 手动在自动优化插件中加载 JS
- linux - netstat 进程 ID 接收的数据包数