如何根据用户输入使变量浮点复数或双精度复数?我正在尝试绘制曼德布洛特集,并且我对浮点和双精度有相同的长代码,但在某些情况下,浮点不够精确,而双精度太慢。我在低性能计算器上运行它,因此浮点少于 1 秒,而双精度至少需要 5 秒。我想让用户选择精度而不是速度或速度而不是精度。我想得到这样的结果:
int user_input;
scanf("%d", &user_input);
switch (user_input) {
case 0:
float z;
float c;
break;
case 1:
double z;
double c;
break;
}
for(int i=0;i<1920;i++){
for(int j=0;j<1080;j++){
z=0.0+0.0*I;
c=(i+j*I)/Zoom
}}
预期结果:如果用户输入 0,则所有计算都使用浮点数执行,如果用户输入 1,则所有计算都使用双精度数执行。
但这会引发错误:'z' 的类型冲突;具有 'double','z' 的先前声明类型为 'float'。
在 C 语言中可能出现这样的事情吗?
我尝试为 float 和 double 创建两个不同的变量,但在整个代码中更改它们(我有更多的代码)会很漫长且乏味。