| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1227 人关注过本帖
标题:问个问题:当i=3时,i++*++i+i--*--i的值为什么等于18而不是30?
只看楼主 加入收藏
多来米
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-7-17
收藏
 问题点数:0 回复次数:6 
问个问题:当i=3时,i++*++i+i--*--i的值为什么等于18而不是30?
昨天看c语言教学视频,里面有道题是“当i=3时,i++*++i+i--*--i”,老师在讲解的时候视频就没有了,真是郁闷。我心算是3*5+5*3=30,但拿到win-tc上面算却是18,后插了些i的每一部变化也一样:

#include "stdio.h"
#include "conio.h"

main()
{
int i=3,a,b,c,d,e,f,g,h,r,mb;
b=i++;
f=i;
c=++i;
g=i;
d=i--;
h=i;
e=--i;
r=i;
 a=(i++)*(++i)+(i--)*(--i);
 mb=b*c+d*e;
    printf("i=%d\n",i);
    printf("(i++)*(++i)+(i--)*(--i)=%d\n",a) ;
    printf("b=%d,c=%d,d=%d,e=%d\n",b,c,d,e);
    printf("f=%d,g=%d,h=%d,r=%d\n",f,g,h,r);
    printf("b*c+d*e=%d\n",mb) ;
    getch();
}

答案:
i=3
(i++)*(++i)+(i--)*(--i)=18
b=3,c=5,d=5,e=3
f=4,g=5,h=4,r=3
b*c+d*e=30

不懂呀,问过来人这是为啥呢?
搜索更多相关主题的帖子: printf 视频 include c语言 
2008-07-17 00:31
yanxingx
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-7-17
收藏
得分:0 
楼主看的是谁的视频教程,能不能拿出来分享一下
2008-07-17 00:39
多来米
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-7-17
收藏
得分:0 
吉林大学远程教育课件
c语言程序设计
主讲人:康辉
48讲加3个复习课

网上有下载。
这个问题在第五讲结尾,是个反面教材题目,目的是让人不要用这种混合书写的表达式,以免混淆。
2008-07-17 00:46
多来米
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-7-17
收藏
得分:0 
嘿嘿!原来第六讲开始后第5分钟后,才讲这道题,正在看为什么。
2008-07-17 00:50
多来米
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-7-17
收藏
得分:0 
知道了,原来先同时算++i和--i,分别是4和2,然后算另外两个i++和i--,都是3,于是3*4+3*2=18
2008-07-17 01:00
多来米
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-7-17
收藏
得分:0 

printf("i++*++i+i--*--i=%d\n",i++*++i+i--*--i) ;
的时候才会等于30
2008-07-17 01:40
枯藤天涯
Rank: 1
等 级:新手上路
帖 子:99
专家分:0
注 册:2007-4-25
收藏
得分:0 
有时候我就想不通
你说你高这复杂干撒

又是些没用的东西
我情愿多写点
最起码不把自己搞糊了
该加括号的加括号
该多用一个变量的加个变量
又什么关系呢?

2008-07-17 05:53
快速回复:问个问题:当i=3时,i++*++i+i--*--i的值为什么等于18而不是30?
数据加载中...
 
   



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

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