注册 登录
编程论坛 C++教室

C++新手,帮忙看段代码

楞楞是我 发布于 2015-12-24 10:59, 2625 次点击
求边长不大于500的直角三角形三边
for(x=5;x<=500;x++)
 {for(y=4;y<x;y++)
    for(z=3;z<y;z++)
{if(x*x=y*y+z*z)
 cout<<x<<y<<z;
 i++;}
,400以下的全部输出正常,大于400的出现错误,三角形三边输出不全,个数正确
WHY?
6 回复
#2
q5147005482015-12-25 16:04
这里是java版面 你进错了。。
#3
wp2319572015-12-25 16:09
if(x*x=y*y+z*z)
#4
阿文fire2015-12-26 10:19
以下是引用wp231957在2015-12-25 16:09:18的发言:

if(x*x=y*y+z*z)
确实是这个问题,下面这样写,是可行的
程序代码:
#include <iostream>

using namespace std;

int main()
{
    int x,y,z,i=0;
    for(x = 5; x <= 500; x++)
    {
        for(y = 4; y < x; y++)
            for(z = 3; z < y; z++)
            {
                if(x*x == y*y + z*z)
                {
                    i++;
                    cout << i <<" "
                         << x <<" "
                         << y <<" "
                         << z <<endl;
                }
            }
    }
    return 0;
}


#5
sigehaha2015-12-26 10:39
ofstream file("test.txt");
    int iCount = 0;
    for (int z = 5; z <= 499;++z)
    for (int y = 4; y <= z; ++y)
    for (int x = 3; x <= y; ++x)
    if (z * z == y*y + x * x)
    {
        ++iCount;
        cout << "iCount: " << iCount<<"  ";
        cout << "x = " << setw(3) << x
             << " y = " << setw(3) << y
             << " z = " << setw(3) << z << endl;
        file << "iCount: " << iCount << "  ";
        file << "x = " << setw(3) << x
            << " y = " << setw(3) << y
            << " z = " << setw(3) << z << endl;
    }
    cout << "一共有: " << iCount << endl;
    file << "一共有: " << iCount << endl;
LZ应该是看不到前面的,这可能是控制台的限制。输出到文件中妥妥可以看到的。
#6
sigehaha2015-12-26 10:40
回复 5楼 sigehaha
LZ的if语句。。。。
#7
Nelsonpp2015-12-27 09:46
1