2014-10-07 36 views
0

Alrighty的人,所以我坐在这里盯着我的屏幕,因为我的程序反复崩溃。我为第一个循环尝试了几个不同的修复程序。问题是,我不想在第一个循环中更改任何变量,我只是想将其作为第一个测试循环。问题是,它不会在没有在循环中追加变量的情况下运行(如x ++或更改变量的某个变量)。我总是得到用户输入很好,输入一个数字,然后bam。崩溃。对于输入不明原因的回路崩溃

while (((x%2!=0)&&(y%2==0)) || ((x%2==0)&&(y%2!=0))) { 
    int numtest; 

    numtest=x%y; 

    while (numtest==1 && x<=i) { 
     a=(x*x)-(y*y); 
     b=2*x*y; 
     c=(x*x)+(y*y); 

     x++; 
     y++; 
     printf("%d, %d, %d\n", a, b, c); 
    } 
} 

我只是不清楚它为什么崩溃,即使我拥有我需要的一切。任何人都看到修复?

编辑:编辑与建议从下面 编辑2:发现崩溃是由于无限的while循环。更改为if语句会停止崩溃。

+1

使用',而不是'while' for' – mlwn 2014-10-07 01:51:33

+0

什么错误是否显示当它崩溃? – 2014-10-07 02:04:20

+0

尝试过,但仍然崩溃。 – Darksider13 2014-10-07 02:04:33

回答

0

替换此for (x=2, y=1;((x%2!=0)&&(y%2==0)) || ((x%2==0)&&(y%2!=0));i) {

for (x=2, y=1;((x%2!=0)&&(y%2==0)) || ((x%2==0)&&(y%2!=0));) { 

或更好,但作为mlwn建议,使用while循环

x = 2; 
y = 1; 
while (((x%2!=0)&&(y%2==0)) || ((x%2==0)&&(y%2!=0))) { 
+0

前段时间我尝试了循环建议,做一个while循环的原因不会改变任何东西。程序仍然崩溃。 – Darksider13 2014-10-07 02:02:00

+0

实际上发现如果我做第一个循环一个if语句,然后跟着一段时间,我得到我想要的输出。不会崩溃。感谢mlwn和Farouk的帮助。 – Darksider13 2014-10-07 02:20:35