| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 665 人关注过本帖
标题:一维数组,请大家帮帮我啊
只看楼主 加入收藏
wic
Rank: 2
等 级:论坛游民
帖 子:33
专家分:21
注 册:2010-2-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
一维数组,请大家帮帮我啊
程序如下,

程序代码:
#include "stdio.h"
int main()
{
int i,a[10];
for(i=0;i<10;i++)
a[i++]=2*i+1;
for(i=0;i<10;i++)
printf("%d ",a[i]);
}


我用VC6和win-tc运行的结果不一样。
为什么结果不是我想象中的1,3,5,7,9......啊!
特别是"for(i=0;i<10;i++)
a[i++]=2*i+1;"这个表达式里的两个后置自加运算,每次的值我弄不太明白,
请有能力的朋友帮我详细讲解一下。
请大家帮我一下,谢谢了啊
2010-04-23 19:01
ls9527
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-12
收藏
得分:0 
这.......
这样的。。
由于编译器执行的过程不一样。。

有的编译器是从左往右i++
先i在i++
有的是从右往左算
先i++在i
2010-04-23 19:41
ychf890225
Rank: 4
等 级:业余侠客
帖 子:85
专家分:221
注 册:2010-4-15
收藏
得分:3 
#include "stdio.h"
int main()
{
int i,a[10];
for(i=0;i<10;i++)
a[i]=2*i+1;
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
这个就行了,你别累次用++
2010-04-23 19:54
ychf890225
Rank: 4
等 级:业余侠客
帖 子:85
专家分:221
注 册:2010-4-15
收藏
得分:10 
你在循环体里面就有了++操作 在循环下面又对i作了一个++ 中间就跳过一个a[i],输出一个随机数 并且跳过了一次对i的运算  你自自习看一下
2010-04-23 19:57
seep666
Rank: 2
等 级:论坛游民
帖 子:91
专家分:14
注 册:2010-3-18
收藏
得分:0 
顶 三楼
2010-04-23 22:08
ballofpan
Rank: 1
等 级:新手上路
帖 子:8
专家分:5
注 册:2009-8-12
收藏
得分:5 
for( i = 0; i < 10; i++)
    a[i++] = 2 * i + 1;

等于:
for ( i = 0; i < 10;)
{
    a[i++] = 2 * i + 1;
    i++;
}
i在里面加了两次.
2010-04-23 22:23
whbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:180
专家分:139
注 册:2010-3-31
收藏
得分:2 
你重复了i++,用了两次,你看看吧!去掉a[i++]=2*i+1;这个中的++就可以得到你的运行结果了!

付出终将有回报!Ibelieve!
2010-04-23 22:27
wic
Rank: 2
等 级:论坛游民
帖 子:33
专家分:21
注 册:2010-2-9
收藏
得分:0 
呵呵,谢谢大家的帮忙指点
2010-04-23 22:56
快速回复:一维数组,请大家帮帮我啊
数据加载中...
 
   



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

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