我尝试了很多东西。从命令行运行,从cmd运行,用/ K运行,放置系统(“暂停”);的getchar();的getch();在返回0之前我根本无法让它运行。我正在使用Notepad ++编写,在Cygwin中进行编译,并且窗口显示为空白,因为它出现的瞬间(根据我的截图,它可能太早了)。基本上我已经尝试了谷歌自己的任何东西。所以我认为调试器没有显示的代码一定是错的。
#include <stdio.h>
int main()
{
float lt1, lt2, dmg, x;
lt1=10;
lt2=30;
while(lt2>dmg)
{
while(x>0 || lt2>dmg)
{
dmg=dmg+x*lt1;
x--;
return (dmg);
}
x=x+0.01;
return (x);
}
printf("Horde factor is: %f", x);
return 0;
}
我很感激能得到的任何帮助,我希望你能用我的经验来承担。
答案 0 :(得分:3)
您的代码中有未定义的行为。
当您声明局部变量而不为其赋值时,其值是不确定的。在为其赋值之前,此变量的使用将是未定义的行为。
在这种情况下,dmg
和x
变量会导致此问题。
答案 1 :(得分:2)
因为这些陈述:
return (dmg); //this ends the code execution .. because you have returned something from main()
x=x+0.01;
return (x); // even this one is wrong
你要退出那里的代码,永远不会去printf ..
在main()
..和最后只有一个回报。
您的代码存在更多问题:
您没有初始化dmg
和x
,但您将它们用作while循环的参数
float lt1, lt2, dmg, x; // dmg,x uninitialized
在外部的while循环中......它是一个无限循环,因为你不对该循环的参数做任何事情来摆脱它。
就像我上面说过的那样.. main()
也许不是回来你应该看看break;
(我不知道那是不是你想要的,因为我不理解你的代码)