小蓝的程序猿生活 2021-02-24 19:33 采纳率: 50%
浏览 29
已采纳

在不同代码行运行类似条件导致结果不同

已知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

 

不明白为什么都可以的语句输出结果不同。

求求大佬了!!!

  • 写回答

3条回答 默认 最新

  • 小白小白你好菜 2021-02-24 20:59
    关注

    第二个程序: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条)

报告相同问题?

悬赏问题

  • ¥15 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题