永发信息网

C++运行错误帮忙看看

答案:2  悬赏:80  手机版
解决时间 2021-05-01 16:44

要求输入4个数. 从小到大排序后输出.

#include <iostream>
using namespace std;

int main()
{
int a[4],temp;
for(int i=0;i<=4;++i)
{
cout<<"输入第 "<<i+1<<"个数: ";
cin>>a[i];
}

for(i=0;i<=4;++i)
{
for(int j=0;j<=4-i;++j)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}

cout<<"从小到大 排序后: ";
for(i=0;i<4;++i)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}

程序运行内存错误...

最佳答案

你好. 你程序中定义的数组长度为4. 但是输入和冒泡排序时,因为下标的上界为i<=4. 所以会导致下标越界.


以下是修改后的程序:


#include <iostream>
using namespace std;


int main()
{
int a[4],temp;
for(int i=0;i<4;++i)
{
cout<<"输入第 "<<i+1<<"个数: ";
cin>>a[i];
}

for(i=0;i<4;++i)
{
for(int j=0;j<4-i;++j)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}

cout<<"从小到大 排序后: ";
for(i=0;i<4;++i)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}

全部回答

第一个for(int i=0;i<=4;++i),这里i到4的时候就溢出了。你的a[4],最多只能到3。

for(i=0;i<=4;++i) 和 for(int j=0;j<=4-i;++j) 也是一样的道理。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有关CF的,本人菜鸟。
要怎么追自己喜欢的女孩
有没有好看的恋爱的动漫(越多越好)
你最喜欢许嵩的哪首歌呢?
曹县中医医院-病房楼地址有知道的么?有点事
从一而终的爱情句子,我对你始终是从一而终 这
NOD32最近升级不了了。。。换了很多用户名和
电影,我把温柔献给你插曲
怎么查看QQ拼音自己的积分
什么是QQ个人设置漫游?请说的详细点
玩复杂的图有什么跑法
如何清空百度历史记录,怎样消除平板历史记录
新眼镜我想知道这个在什么地方
青岛有没有能看见海的酒店、价钱在400左右的
召唤师如何选择时装
推荐资讯
香聚饭店地址有知道的么?有点事想过去
给我的小号邀请个QQ餐厅了,谢谢
帮忙做几个漂亮好看又个性带《凯》字的头像
AU里面发现可以很便宜的衣衣!一块钱都可以买
地下城什么情况永久封号啊
大五爱内衣生活馆这个地址在什么地方,我要处
武汉江滩花鸟市场搬哪去了
湖南师大有没有专科
我是油性皮肤,有痘痘,自己DIY珍珠粉蜂蜜面
最快的街跑摩托车是什么牌?可以多快?多少钱
如果用洗手液洗头发会发生什么事
现在蓝钻能激活吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?