当前位置: 代码迷 >> C语言 >> 请各位帮看看,一个初学者遇到的小问题!--百钱买百鸡
  详细解决方案

请各位帮看看,一个初学者遇到的小问题!--百钱买百鸡

热度:98   发布时间:2008-01-20 09:17:20.0
请各位帮看看,一个初学者遇到的小问题!--百钱买百鸡
百钱买百鸡的问题,编了个程序,编译成功,但无法出现结果,光标一闪一闪的,啥也没有。
#include<stdio.h>
int main()
{
  int x,y,z;
  for(x=1;x<=19;x++)
  {
    for(y=1;y<=33;y++)
    z=100-x-y;
    if(5*x+3*y+z/3==100)
    printf("%d,%d,%d",x,y,z);
   }
}
试了多次,也改了多次,就是无法运行结果。教材上的是IF语句,可以运行,结果正确。
----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main()
{
  int x,y,z;
  for(x=1;x<=19;x++)
  {
    for(y=1;y<=33;y++)
    {//这里加个括号
       z=100-x-y;
       if(5*x+3*y+z/3==100)
           printf("%d,%d,%d",x,y,z);
    }//这里加个括号
   }
}
----------------解决方案--------------------------------------------------------
谢谢斑竹!
按照斑竹的提示,改了下,发现运行结果错误,后又把程序改动一下:
#include<stdio.h>
int main()
{
  int x,y,z;
  for(x=1;x<=19;x++)
  {
    for(y=1;y<=33;y++)
    {
     z=100-x-y;
    if(5.0*x+3.0*y+z/3.0==100.0)
    printf("%d,%d,%d\n",x,y,z);
   }
}
}
现经测试,成功!!!!!
谢谢!!!
----------------解决方案--------------------------------------------------------
哦哦,我没调试过,不好意思
不过你这样改是不行的,鸡都是整只的,不能按浮点数来算,而且浮点数的比较,也不能用==
我改成了这样
#include<stdio.h>
int main()
{
    int x,y,z;
    for(x=1;x<=19;x++)
    {
        for(y=1;y<=33;y++)
        {
            z=100-x-y;
            if(z%3!=0)continue;
            if(5*x+3*y+z/3==100)
                printf("%d,%d,%d\n",x,y,z);
        }
    }
    return 0;
}

VC6运行结果:
4,18,78
8,11,81
12,4,84
Press any key to continue

----------------解决方案--------------------------------------------------------
初来还不是很明白?????????
----------------解决方案--------------------------------------------------------
时间长了就明白了
----------------解决方案--------------------------------------------------------
同意楼上兄弟观点啊.你可以把论坛里面别人已经写好的东西复制粘贴.看看别人的程序,也可以把错的程序自己改有助于提高....
----------------解决方案--------------------------------------------------------
  相关解决方案