| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1124 人关注过本帖
标题:初学C语言,遇到点问题请大家帮帮忙!!
只看楼主 加入收藏
hukeji711
Rank: 1
等 级:新手上路
帖 子:4
专家分:1
注 册:2009-11-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:17 
初学C语言,遇到点问题请大家帮帮忙!!
#include<stdio.h>
void main()
{
  int i=5;
  while(i!=0)
    {
    printf("%d",i--);

    }
  getch();
}
鄙人太笨,测试出来的结果是:5 4 3 2 1  我在想:为什么不是4 3 2 1 0 呢?我是这样想的:初值是5,i--,所以第一个应该是4啊。。
才学几天C语言,希望各位帮帮忙,还有,不知道该怎么学C语言,买了两本书,看着好累。本来我对数学就不感冒。。
现在的工作太累了,我的想法就是自学一门技术,以后找工作时也好有点优势。。。。
搜索更多相关主题的帖子: 初学 C语言 
2009-11-01 21:27
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:6 
这是 i--  和 --i 的区别,前者是先引用后计算,后者是先计算后引用 ,就是说,如你的题,是先引用i(即先printf("%d",i);此时的i还是原来的值),再进行i = i-1运算,后者相反,如果是printf("%d",--i);的话,就是先进行i = i-1运算,再引用i(即printf("%d",i);此时的i已改变),
2009-11-01 21:37
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 
偶是路过的......顺便说一下,
i--是后减一,就是运行完以后再自减.
你要想4 3 2 1 0 写成--i就可以了.


感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2009-11-01 21:37
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:2 
个人觉得学语言贵在坚持,多看看书,看完后自己上机多操作,还有就是多上论坛看看,看下别人的问题,看自己能不能回答,不会的看看别人怎么解答,每天坚持做好这三点,日积月累,肯定会有很大提高
2009-11-01 21:40
小牛哥
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2009-10-20
收藏
得分:2 
在这里因为是i--,是先用i的值然后才是i-1,如果是--i的话将出现你说的那种情况!还有就是想把c学到可以应用于具体问题中,你至少要学上个2-3年,如果想掌握一门技术的话,你可以学学做网页,这个比语言能简单点,万事开头难,加油吧!!
2009-11-01 21:40
流星雨
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:JAVA风暴
等 级:版主
威 望:43
帖 子:1854
专家分:1868
注 册:2004-5-30
收藏
得分:0 
已经有人回答了,早知道不筹热闹了

感谢你们带我找到星空下美丽神话,无论经历多少苦痛也不放弃的梦;插上希望翅膀乘风我和你们飞翔,飞过海天尽头携手把梦想实现.....
2009-11-01 21:40
ll2323001
Rank: 2
等 级:论坛游民
帖 子:56
专家分:61
注 册:2009-10-26
收藏
得分:5 
'i--'的意思是先运行i,过后才执行i减1,“--i”的话就是4.3.2.1了,这是说先减1,在执行,没有0是因为,你上面说的“
while(i!=0)
    {
    printf("%d",i--);

    }
”意思是当i不等于0的时候输出i的值,然后减1,不知道这样解释你懂不
2009-11-01 21:41
rexzheng
Rank: 2
等 级:论坛游民
帖 子:32
专家分:13
注 册:2009-10-26
收藏
得分:3 
哈哈。。我也刚学。。楼主的精神让人敬佩。。
先说明下i++与++i的区别,
i++:是先使用i的值。然后执行完整个步骤后在加一的,
而++i,是先加一,再使用i的值

例如;int i=1;
printf("%d,%d",i++,i++);
输出的是 1,1  而最后i的值为3,因为在执行完整个printf后,完成了2次加一

int i=1;
printf("%d,%d",++i,++i);
输出的是 3,2,因为是先加再使用...。
可能你要问为什么3在前面呢?
哈哈。。我也不知道。。。把你弄糊涂了吧。。
我觉得是因为是与输出方式有关,或者是运算过程,可能是从右到左计算吧

有谁知道也告诉告诉。。学习学习
2009-11-01 21:48
hackerStar
Rank: 2
来 自:厦门
等 级:禁止访问
帖 子:66
专家分:71
注 册:2009-10-29
收藏
得分:0 
这种虚心请教的态度还是值得表扬的,大家鼓励

-------------->>>>>信仰火之意识,崇拜黑客精神<<<<<--------------------
2009-11-01 22:07
yt414204458
Rank: 2
等 级:论坛游民
帖 子:260
专家分:55
注 册:2008-3-1
收藏
得分:0 
这问题建议自己去看书吧,书上写的很清楚了

一切从爱C开始
2009-11-01 22:35
快速回复:初学C语言,遇到点问题请大家帮帮忙!!
数据加载中...
 
   



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

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