while 循环 哪里出错了 a的zhi不变了
发布网友
发布时间:2024-10-21 20:14
我来回答
共5个回答
热心网友
时间:2024-11-26 17:06
while (b<=6)
{if (a*a+b*b==36)
{printf ("a=%d,b=%d\n",a,b); }
b++; }
你的问题出在上面这一段,这一段的条件是b小于等于6的时候,执行while中 的语句。当a=-6时,b++执行到b>6时,while中 的printf语句停止执行。然后在执行a++时,即a=-5,这时b的值仍大于6,所以printf并不执行。应该在while下面再加一句b=-6;
while (b<=6)
{if (a*a+b*b==36)
{printf ("a=%d,b=%d\n",a,b); }
b++; }
b=-6;
前几楼的解释也都有道理哎。
热心网友
时间:2024-11-26 17:06
不太清楚你希望程序怎么运行。
你写的 是
先固定a = -6, b 从-6 变 通过 +1, 在while (b<=6)中到 7
然后 a = -5, b 从-6 变 通过 +1, 在while (b<=6)中到 7
...
最后在 a=7 时 离开while(a<=6)
热心网友
时间:2024-11-26 17:07
b=-6; 应该在while (a<=6)的循环体开始处:
...
int a=-6,b;
while (a<=6)
{
b=-6;
while (b<=6)
...
热心网友
时间:2024-11-26 17:07
a的值是不变呀 因为当a=-6 b=-6 是满足的if条件呀 就直接输出啦
热心网友
时间:2024-11-26 17:08
while (a<=6)
{
// 此处加
b=-6;
while (b<=6)