24小时热门版块排行榜    

查看: 835  |  回复: 1

sangs-M

金虫 (小有名气)

[求助] 一个简单的C++程序,为什么会产生溢出?

程序如下:
#include<iostream.h>
void main()
{
        int cd,*zz,i,n;
        cout<<"要比较的数共有:"<<endl;
        cin>>cd;
        zz=new int[cd];
        cout<<"输入要比较的数:"<<endl;

        for(i=0;i<cd;i++)
        {       
        *(zz+i)=i;
                cin>>zz;
        }
        cout<<"比较的数如下"<<endl;
        for(i=0;i<cd;i++)       
            cout<<zz<<" ";
        cout<<endl;
        for(int j=0;j<cd;j++)
                for(int k=0;k<cd-j;k++)
                {
                        if(zz[k]>zz[k+1])
                        {
                                n=zz[k];
                            zz[k]=zz[k+1];
                            zz[k+1]=n;
                        }
                }
        cout<<"这些数从小到大的排列顺序为:"<<endl;
    for(j=0;j<cd;j++)
        {
                cout<<zz[j]<<" ";
        }
        cout<<endl;
        delete[] zz;
}
问题:为什么结果输出会产生溢出,比如我输入5个数1,8,7,5,6,结果会是-33686019,1,5,6,7?

[ Last edited by sangs-M on 2013-11-20 at 10:34 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

无善无恶心之体,有善有恶意之动,知善知恶是良知,为善去恶是格物。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

virtualzx

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
sangs-M: 金币+5, ★★★★★最佳答案, 正解,正在学习C++中,以后还要向你们请教啊 2013-11-20 14:26:10
数组越界了,j=0时k取到cd-1,zz[k+1]就在数组外了
2楼2013-11-20 13:05:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sangs-M 的主题更新
信息提示
请填处理意见