大佬们,帮忙看看下面的程序哪里不对,为什么不出结果?急!急!急!#include<stdio.h>
void main()
{
int man,woman,child,sum,money;
for(man=0;man<=30;man++)
{
for(woman=0;woman<=30;woman++)
{
for(child=0;child<=30;child++)
sum=man+woman+child;
money=3*man+2*woman+1*child;
if(sum==30&&money==50)
{
printf("男人有%d人,女人有%d人,小孩有%d人\n",man,woman,child);
}
}
}
}
结果是这样的
哪里错了?
追答这个很明显没有进入到你的if()子过程中去啊,你再检查检查逻辑。
会不会调试啊?
调试没错误啊
追答你那个不叫调试!
是这样,虽然程序能跑出来,但是就不代表没有bug的。
你的这段代码明显是对于if(sum==30&&money==50)这个结果的判断始终为false
所以程序跑步进去if()里面,所有没有输出值。
明白了吗?
还有呢,再次建议你把变量的定义写在if()里面,比如这样if(int man=0;man<30;man++)
没有😭
追答提醒你一下,你的代码应该是有逻辑问题的
你这是三元一次方程的解,有两个方程式
分别是:X+Y+Z=30和3X+2Y+Z=50,这两个是解不出来的,只能是一系列可能的解
所以你的break;应该是有问题的
你说说你的想法,我帮你再看看。
就是要一系列可能的解啊
刚开始的没有break
#include
#include
void main()
{
int a,b,head=98,feet=386;
for(a=0;a<=98;a++)
{
for(b=0;b<=98;b++)
{
if(a+b==98&&a*4+b*2==386)
printf("兔有%d只,鸡有%d只\n",a,b);
}
}
}
这个有结果
这两个有什么区别吗?
#include
void main()
{
int man,woman,child,sum,money;
for(man=0;man<=30;man++)
for(woman=0;woman<=30;woman++)
for(child=0;child<=30;child++)
if(man+woman+child==30&&3*man+2*woman+1*child==50)
{
printf("男人有%d人,女人有%d人,小孩有%d人\n",man,woman,child);
break;
}
}
这个也有结果
我知道什么问题了,你的控制逻辑有问题
改一下代码
这样你再试试,应该可以了!
追问😱😱😱
int不能在for里定义吧
追答那你再改回去试试嘛 多尝试 主要是你的图片看不清楚 很尴尬
追问嗯,好了,谢谢
怎样把左下角部分去掉?
程序如下
#include
void main()
{
int i,j,sum;
int n=0,x=1,y=1;
for(y=1;y<=9;y++)
{
printf("%4d",y);
}
putchar('\n');
for(x=1;x<=9;x++)
{
printf(" -",n);
}
putchar('\n');
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
{
sum=i*j;
printf("%4d",sum);
n++;
if(n%9==0)
printf("\n");
}
}
}