| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1330 人关注过本帖
标题:关于for循环语句的问题..
只看楼主 加入收藏
MMMMint
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-2-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
关于for循环语句的问题..
#include <stdio.h>
   main( )
   {  int  x, y;
      for(x=30, y=0; x>=10, y<10; x--, y++)
         x/=2, y+=2;
      printf(“x=%d,y=%d\n”,x,y);
   }
运行结果为:x=0  y=12

我是这样算的..
第一次   x=15  y=2
然后x-1=14    y+1=3

第二次   x=7   y=5
然后x-1=6     y+1=6   这个时候x<10了结束循环

请问我哪里错了> <

搜索更多相关主题的帖子: include 
2016-02-11 23:38
米线儿
Rank: 2
等 级:论坛游民
威 望:1
帖 子:35
专家分:54
注 册:2015-3-28
收藏
得分:10 
把每一步的计算结果都打出来的结果如下图所示
图片附件: 游客没有浏览图片的权限,请 登录注册

显然是结束循环的条件出现了问题,程序直到两个条件都不满足,就是说x>=10和y<10都不成立才停止,即系统默认的两个条件是的关系,而你分析的时候是的关系,任何一个条件不满足就停止。
按下面的代码才是你想要的结果。
程序代码:
#include <stdio.h>
  void main()
   {  int  x, y;
      for(x=30, y=0; x>=10&&y<10; x--, y++)
        {
            x/=2;
            y+=2;
            printf("x=%d,y=%d\n",x,y);
        }
      printf("x=%d,y=%d\n",x,y);
   }

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2016-2-12 06:07编辑过]

2016-02-12 06:03
MMMMint
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-2-5
收藏
得分:0 
回复 2楼 米线儿
么么哒><
 
我还有最后一个问题0 0   

就是在for循环语句中关于printf的问题..

就比如上面这个程序好了
#include <stdio.h>
   main( )
   {  int  x, y;
      for(x=30, y=0; x>=10, y<10; x--, y++)
         x/=2, y+=2;
      printf(“x=%d,y=%d\n”,x,y);
   }
我想知道printf是不是就执行一次还是它在x=30的时候循环一次 在x=15的时候循环一次 随着x在达到条件的时候一直循环
在双重for语句中 比如

#include <stdio.h>
#define N 4
main( )
{ int  i,j;
 for(i=1;i<=N;i++)
  { for(j=1;j<i;j++)
        printf(" ");
  printf("*");
  printf("\n");
  }
}
在这个里面对于第二个for语句中只一直循环 printf(" ");这个   为什么不是循环  printf(" "); printf("*");或者 printf(" "); printf("*");  printf("\n");
是不是内层for语句里面只能跟一个printf函数

><  
2016-02-12 12:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
不論什麽循環和判斷語句,裏面有多少語句,整個都用{}括起來。不要學人靠縮進來寫,省兩行{}的空間祇能給自己和別人帶來不必要的麻煩。也就是説,培養出良好的書寫習慣,根本就不存在你這個問題。

授人以渔,不授人以鱼。
2016-02-12 12:09
MMMMint
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-2-5
收藏
得分:0 
回复 4楼 TonyDeng
题目是这样的 上面的不是我编的
如果题目是这样 我更加分不清才问的
2016-02-12 13:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
for/while/do/if等,默認後面是一條語句,但“語句”這個概念,包含“複合語句”,即多條語句,複合語句以{}括號包圍起來,整個算作一條語句。所以,不管實際上是不是單條語句,都用{}括住就是了。書上教或示範、考試專考這樣的,該考慮一下是不是値得入他門下了。

授人以渔,不授人以鱼。
2016-02-12 13:51
米线儿
Rank: 2
等 级:论坛游民
威 望:1
帖 子:35
专家分:54
注 册:2015-3-28
收藏
得分:0 
回复 3楼 MMMMint
for循环体如果后面不用大括号括起来的话,默认只有一句语句是循环体,就是说其他的都是在循环体外的,运行外循环才接下去运行那一句,和printf没关系,任何语句在for后面都是这样的
2016-02-12 14:52
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
楼主这是逗号运算符的问题吧

能编个毛线衣吗?
2016-02-12 16:41
快速回复:关于for循环语句的问题..
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029695 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved