| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 659 人关注过本帖
标题:请大家看看这个简单的程序为什么不能输出97531?
只看楼主 加入收藏
haoxiaozi905
Rank: 1
来 自:henan
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-1
结帖率:0
收藏
 问题点数:0 回复次数:7 
请大家看看这个简单的程序为什么不能输出97531?
#include<iostream>
using namespace std;
int main()
{
    int i,a[5];
    for(i=0;i<=4;i++)
        a[i]=9-2*i;
    cout<<a[i]<<" ";
    cout<<endl;
    return 0;
}
执行后,结果是5.
很郁闷。
搜索更多相关主题的帖子: 输出 
2010-05-04 13:07
yuandaiyong
Rank: 2
等 级:论坛游民
帖 子:7
专家分:20
注 册:2010-4-15
收藏
得分:0 
你这个输出没在循环里,最后打印出来的应该是a[5]吧。。已经越界了  打印出个数内存里的残留数据吧
2010-05-04 14:40
clcaogang
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-04 16:16
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
#include<iostream>
using namespace std;
int main()
{
    int i,j,a[5];
    for(i=0;i<=4;i++)
        a[i]=9-2*i;
    for(j=0;j<5;j++)
    cout<<a[j]<<" ";
    cout<<endl;
    return 0;
}
这个可以的  不信你试试

                                         
===========深入<----------------->浅出============
2010-05-22 16:51
alweeq86
Rank: 2
等 级:论坛游民
帖 子:67
专家分:20
注 册:2008-9-14
收藏
得分:0 
回复 楼主 haoxiaozi905
#include<iostream>
using namespace std;
int main()
{
    int i,a[5];
    for(i=0;i<=4;i++)
        a[i]=9-2*i;
    cout<<a[i]<<" ";//这一行要放在循环体内。否则是循环执行完了再执行这一句 此时i=5了 a[5]下标越界
    cout<<endl;
    return 0;
}
程序代码:
#include<iostream>
using namespace std;
int main()
{
    int i,a[5];
    for(i=0;i<=4;i++)
    {  a[i]=9-2*i;
       cout<<a[i]<<" ";
    }
    cout<<endl;
    return 0;
}

2010-05-28 08:46
xiao74485
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-5-28
收藏
得分:0 
以下是引用yuandaiyong在2010-5-4 14:40:02的发言:

你这个输出没在循环里,最后打印出来的应该是a[5]吧。。已经越界了  打印出个数内存里的残留数据吧
2楼说的不错  数组越界 打印的是下一个地址的值 也就是i的值, 去看看简单的通过数组越界破解篇就能明白。 如果此处使用std运行直接崩溃。
2010-05-28 12:35
思忆季节
Rank: 2
来 自:珠海
等 级:论坛游民
帖 子:42
专家分:62
注 册:2010-5-12
收藏
得分:0 
#include<iostream>
using namespace std;
int main()
{
    int i,a[5];
    for(i=0;i<5;i++)
    {
        a[i]=9-2*i;
        cout<<a[i]<<" "<<endl;
    }
    return 0;
}
2010-05-28 13:38
思忆季节
Rank: 2
来 自:珠海
等 级:论坛游民
帖 子:42
专家分:62
注 册:2010-5-12
收藏
得分:0 
里面漏掉{}的话就只是输出一个值来的,呵呵
2010-05-28 13:39
快速回复:请大家看看这个简单的程序为什么不能输出97531?
数据加载中...
 
   



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

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