| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 825 人关注过本帖
标题:朋友们:帮忙看看了.
只看楼主 加入收藏
caoge106
Rank: 1
等 级:新手上路
帖 子:29
专家分:5
注 册:2012-6-8
收藏
得分:0 
i am sorry !!!因为我是新手,很多地方没把握,,我就是刨根问底了,有什么办法能让,printf()不越界,i!=10.
我的理解是:
void main()
{
int i,a[10];
for(i=0;i<10;i++)
a[i++]=2*i+1;
printf("%d",a[i]);
}
for(i=0;i<10;i++) 不是已经规定i<10?怎么还会出现越界呢?


2012-07-20 17:56
岩枭
Rank: 2
等 级:论坛游民
帖 子:12
专家分:38
注 册:2012-7-18
收藏
得分:5 
你在for里面++后 又用一个 i++   
当 i=9时,循环继续,for给i+1,
继续下面的语句,a[i++],此时你又让i自加1了,于是i=11,
2012-07-20 19:59
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:5 
首先你的代码printf("\n%d %d\n",a[5.2],a[5.8]);
这句没见过,可能你用的那本书太老了吧!
我根据我的理解改了一下,你看一下合不合你的意思!
#include<stdio.h>
void main()
{
    int i,a[10];
    for(i=0;i<10;i++)
        a[i]=2*i+1;
    for(i=9;i>=0;i--)
        printf("%d\t",a[i]);
    printf("\n%d %d\n",a[5],a[6]);
}
第二段代码数不出结果,因为i是变量,要记住整形数组不可能一下就把所有的元素一起输出来!
printf("%d",a[i]);
2012-07-20 20:41
obstratiker
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:198
专家分:758
注 册:2011-5-5
收藏
得分:8 
以下是引用caoge106在2012-7-20 17:56:21的发言:

i am sorry !!!因为我是新手,很多地方没把握,,我就是刨根问底了,有什么办法能让,printf()不越界,i!=10.
我的理解是:
void main()
{
int i,a[10];
for(i=0;i<10;i++)
a=2*i+1;
printf("%d",a);
}
for(i=0;i<10;i++) 不是已经规定i<10?怎么还会出现越界呢?
每次for循环之后,i都会“越界”,因为你的限定的for(i=0;i<10;i++)啊
如果i不等于10的话,就不可能跳出for循环
所以for循环之后i=10
但我所谓的越界并不是指这个
是你在打印数组的时候,必须0<=i<=9
所以如果你后面要打印a[]中的元素,得对i重新赋值
另外你的for循环只对a=2*i+1有效,如果你要在for循环内执行printf
得for()
{
    a=2*i+1;
    printf();
}
2012-07-20 20:53
快速回复:朋友们:帮忙看看了.
数据加载中...
 
   



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

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