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

为什么执行不出结果?求解释下

pchszwzc11 发布于 2012-09-23 10:17, 409 次点击
#include "stdafx.h"
#include "math.h"

int main(int argc, char* argv[])
{
    int y,z,x;
    scanf("%d%d",&y,&z);
    for(x=0;x<100000;x++);
    if(pow(y,y)==100+x&&pow(z,z)==268+x)
    {   
        printf("%d%d",y,z);
    }
    return 0;
   
}

4 回复
#2
非常西加加2012-09-23 22:55
您好,您QQ号多少,我也是新手,我们一起学习C++。
#3
houbincarson2012-09-24 00:23
x<1000000这出错了,范围改小点
#4
hanyueguxing2012-09-24 21:09
把for后面的分号去掉 加一个大括号 把if语句包含其中 另外必须确保你输入的y和z值满足条件 否则程序直接执行完毕退出了 你是看不到输出结果的
#5
hanyueguxing2012-09-24 21:29
不知道你是不是想达到这样的目的
#include <Windows.h>
#include <math.h>
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
    int y,z,x;
    //cin>>y>>z;
    x=y=z=0;
    for(x = 0; x < 100000; x++)
    {
        cout<<"x="<<x<<endl;
        for(y = 0; y < 100000; y++)
        {
            cout<<"y="<<y<<endl;
            for(z = 0; z <100000; z++)
            {
                cout<<"z="<<z<<endl;
                if((double)pow((double)y, y) == 100 + x &&(double)pow((double)z, z) == 268 + x)
                {
                    cout<<"结果为"<<y<<" "<<z;
                    Sleep(2000);
                }
            }
        }
    }
    return 0;
}
1