在不同代碼行運行類似條件導致結果不同

CSDN問答 2022-01-07 23:32:30 阅读数:856

不同 不同

已知a>b>c,且a+b+c<100,求滿足條件 1/(a^2)+1/(b^2)=1/(c^2)的  共有多少組。 

#include<iostream>using namespace std;int main(){ int a,b,c,s=0; for(a=3;a<100;a++) { for(b=2;a+b<100&&b<a;b++) { for(c=1;a+b+c<100&&b>c;c++) { if(c*c*b*b+c*c*a*a==a*a*b*b) { s++; } } } } cout<<s<<endl; return 0;}

輸出結果:2

#include<iostream>using namespace std;int main(){ int a,b,c,s=0; for(a=3;a<100;a++) { for(b=2;a+b<100;b++) { for(c=1;a+b+c<100;c++) { if(a>b>c&&c*c*b*b+c*c*a*a==a*a*b*b) { s++; } } } } cout<<s<<endl; return 0;}

輸出結果:0

 

不明白為什麼都可以的語句輸出結果不同。

求求大佬了!!!




采納答案:

第二個程序:if判斷條件寫錯了,題目是要求a>b>c沒錯,但是c中不能連續判斷。你的if條件應該是b>c && a>b &&c*c*b*b+c*c*a*a==a*a*b*b

按你那樣寫,左邊的a>b>c的結果永遠是0。程序首先判斷a>b,結果為1,再判斷1>c,結果為0。第二個程序的左邊永遠為0,所以s++不起到效果



其他答案2:

謝謝大佬,一時不小心忽略了判斷語句的寫法了w(゚Д゚)w

版权声明:本文为[CSDN問答]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201072332298399.html