weixin_43448844 2018-11-16 05:13 采纳率: 0%
浏览 1277

请问为什么这段代码在devc和code block还有vc上运行的结果不同

#include
using namespace std;

void arrayl();
void otherarrayl();
int num;

int main()
{
int a[]={10,20,30,40,50,60,70,80,90,100};
for(int i=0;i<10;i++)
cout<<a[i]<<",";

cout<<endl<<endl<<"input num=";

cin>>num;
otherarrayl();
if(a[9]>num)
{
    cout<<a[9];     
}
else
{
    cout<<num;
}

}

void arrayl()
{
int a[]={10,20,30,40,50,60,70,80,90,100},i,j;
for(j=0;j<=10;j++)
{
if(a[j-1]>num)
{
break;
}
if(num>a[j-1]&&num<a[j])
{
a[j+1]=a[j];
a[j]=num;
}
cout<<a[j]<<",";
}
}

void otherarrayl()
{
arrayl();
int a[]={10,20,30,40,50,60,70,80,90,100},i,j;
for(i=0;i {
if(a[i]>num)
cout<<a[i+1]<<",";
}
cout<<endl;
}

  • 写回答

1条回答 默认 最新

  • Italink 2018-11-16 05:44
    关注

    有2个地方数组访问越界,dev和vc对没有初始化的数据给的初值不一样吧

     void arrayl()
    {
        int a[] = { 10,20,30,40,50,60,70,80,90,100 }, i, j;
        for (j = 0; j < 10; j++)        //不存在a[10],所以j只能到9,去除等号
        {
            if (a[j - 1] > num)
            {
                break;
            }
            if (num > a[j - 1] && num < a[j])
            {
                a[j + 1] = a[j];
                a[j] = num;
            }
            cout << a[j] << ",";
        }
    }
    void otherarrayl()
    {
        arrayl();
        int a[] = { 10,20,30,40,50,60,70,80,90,100 }, i, j;
        for (i = 0; i < 9; i++) {       //数组10个元素,下标到9,但下面用到i+1,所以i<9
            if (a[i] > num)
                cout << a[i + 1] << ",";
        }
        cout << endl;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题