| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 597 人关注过本帖
标题:关于 C 里面 for 函数一个让我钻了很久牛角尖的简单问题求助
只看楼主 加入收藏
infu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-7-28
收藏
 问题点数:0 回复次数:9 
关于 C 里面 for 函数一个让我钻了很久牛角尖的简单问题求助
#include<stdio.h>   
  main()
{   
   int x=121,wei,j,a[10];
   for(j=0;x>0;j++)  
         {
            a[j]=x%10;  
            x/=10;
                printf("j=%d,a[j]=%d,x=%d\n",j,a[j],x);
         }   //把121拆分为每一位,记录下位数
        wei=j;
        printf("wei=%d\n",wei);
   return 0;
  }
这段代码是我做的一个实验,用printf把我需要观察的一些数值打印了出来,结果我还是不懂为什么wei的数值是3而不是2
j=2的时候x=0了,for语句中j++不是应该不再执行吗,为什么下面用j给wei赋值得到的是3
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include return 牛角尖 记录 
2014-07-29 01:32
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分:0 
查一下教科书for的执行顺序吧.  

在j=2的时候,for循环还没有结束呢, 此时会执行一次j++, 然后继续判断x>0的值, 结果(x>0)=0,退出循环, 此时刚才那次j++已经起作用了,j已经从2变为3了.

代码测试环境:  WinXP+C-Free5.0.
2014-07-29 07:46
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
查一下教科书for的执行顺序吧.
这个也能钻很久的牛角尖,基础知识多动手在纸上画一画。

总有那身价贱的人给作业贴回复完整的代码
2014-07-29 08:35
infu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-7-28
收藏
得分:0 
回复 2 楼 vvvcuu
谢谢啦,大一的时候学习的C,应付考试的教育之后也没有做更多实践,课本也不再身边,总想自己找些代码看看
2014-07-29 14:24
理工斌哥
Rank: 1
等 级:新手上路
帖 子:8
专家分:4
注 册:2014-1-30
收藏
得分:0 
当第二次执行完printf语句后,j=1,x=1,返回for语句处,执行j++,得j=2,再判断x>0是否成立(此处x=1>0成立),再执行循环体的内容 ,得x=0,再返回执行j++,得j=3,此时x>0不成立,退出循环,故wei=3
2014-07-29 14:25
infu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-7-28
收藏
得分:0 
回复 3 楼 embed_xuel
谢谢前辈啦,学C完全是在学校里应付考试,之后也一直没有太多实践,细节方面忘记很多了
2014-07-29 14:25
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
这么快就被叫前辈了

总有那身价贱的人给作业贴回复完整的代码
2014-07-29 14:39
阿肥学c语言
Rank: 1
等 级:新手上路
帖 子:9
专家分:8
注 册:2014-7-15
收藏
得分:0 
楼主你在逗我吗
2014-07-31 15:51
阿肥学c语言
Rank: 1
等 级:新手上路
帖 子:9
专家分:8
注 册:2014-7-15
收藏
得分:0 
楼主你在逗我吗
2014-07-31 15:51
yanglin_gdqy
Rank: 2
等 级:论坛游民
威 望:3
帖 子:59
专家分:86
注 册:2013-12-2
收藏
得分:0 
要学会调试
2014-08-04 01:37
快速回复:关于 C 里面 for 函数一个让我钻了很久牛角尖的简单问题求助
数据加载中...
 
   



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

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