鱼C论坛

 找回密码
 立即注册
查看: 3650|回复: 3

循环嵌套中遇到的问题。。。。求救- -!

[复制链接]
发表于 2013-7-23 09:49:38 | 显示全部楼层 |阅读模式
5鱼币
疑惑:变量赋值的位置不一样,导致输出的结果不一样。

在循环外赋值(b=1):
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void main ()
{
int a,b;
  a = 1;
b = 1;
  

system("color fd");

while (a <= 3)
{
  while(b<=5)
  {
   printf ("*");
   b = b + 1;
  }
  printf("\n");
  a = a + 1;
}

return 0;
}

运行结果如下:
before.png


在循环之内赋值(b=1):
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void main ()
{
int a,b;
  a = 1;

  

system("color fd");

while (a <= 3)
{
   b = 1;
  while(b<=5)
  {
   printf ("*");
   b = b + 1;
  }
  printf("\n");
  a = a + 1;
}

return 0;
}

运行结果如下:
after.png


还烦请各位大神指教~~~~~~~~~~~~~~~~~









最佳答案

查看完整内容

循环外赋值 #include #include #include void main () { int a,b; a = 1; b = 1; system("color fd"); while (a
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-23 09:49:39 | 显示全部楼层
循环外赋值
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void main ()
{
int a,b;
  a = 1;
b = 1;
  

system("color fd");

while (a <= 3)
{
  while(b<=5)
  {
   printf ("*");
   b = b + 1;
  }
  printf("\n");
  a = a + 1;
}

return 0;
}

注意,第一次内循环执行完后b=6跳出,然后来到外循环a=a+1=2
继续进入内循环,但是这时候你并没有对b进行重新赋值为1,所以这时b还是等于6,内循环判断>5跳出
于是后面两个都只打印了\n,而没有*

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void main ()
{
int a,b;
  a = 1;

  

system("color fd");

while (a <= 3)
{
   b = 1;
  while(b<=5)
  {
   printf ("*");
   b = b + 1;
  }
  printf("\n");
  a = a + 1;
}

return 0;
}

循环内赋值
第一次内循环执行完后b=6跳出,然后来到外循环a=a+1=2
然后执行 b = 1;
继续进入内循环,这时b=1,内循环判断<=5符合条件打印*
以此类推




小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-23 11:34:33 | 显示全部楼层
LS正解,LZ自己好好看看,很容易,没啥可疑惑的。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-7-23 12:20:40 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-18 16:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表