请问以下语句,为什么只运行了z那一层,结果只打印出了以下:
“x=1,y=1,z=92,price=100”
#include
int main()
{ int x,y,z,price;
price=0;
for(x=1;x<100;x++)
{ for (y=1;y<100;y++)
{ for(z=1;price<100;z++)
{price=5*x+3*y+z*1;
if(price==100)printf("x=%d,y=%d,z=%d,price=%d\n",x,y,z,price);
}
}
}
}
for (z = 1; price < 100; z++) 这里不对啊,你的price如果满足 if(price == 100)这个条件,price就是100了,for循环的条件price < 100就不成立了啊,printf 肯定只执行一次啊。
把 for (z = 1; price < 100; z++) 改成 for (z = 1; z < 100; z++)
修改后的运行结果(部分截图):
for(z=1;price<100;z++)之前要加上price = 0;才行,否则当满足一次price=100后,for(z=1;price<100;z++)就再也满足不了了,导致只执行了一次
根据你当前代码,修改为:
#include<stdio.h>
int main()
{
int x,y,z,price;
price=0;
for(x=1;x<100;x++)
{
for (y=1;y<100;y++)
{
price = 0;
for(z=1;price<100;z++)
{
price=5*x+3*y+z*1;
if(price==100)printf("x=%d,y=%d,z=%d,price=%d\n",x,y,z,price);
}
}
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!