首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有关数组的有关问题

2012-12-31 
有关数组的问题#include stdafx.h#include stdio.h#include stdlib.hint main(){int max,min,nmax,n

有关数组的问题

#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"



int main()
{
int max,min,nmax,nmin,i,p;
int a[10]={0};

for(i=0;i<10;i++)
{
scanf(" %d",&a[i]);
if(a[i]>a[i+1])
{
max = a[i];
nmax = i;
}
else
{
min = a[i];
nmin = i;
}
}


p=nmin;
a[nmin]=a[nmax];
a[nmax]=a[p];

for(i=0;i<10;i++)
{
printf(" %d",a[i]);
}

system("pause");

return 0;
}

可以编译,运行时输入十个数字之后就出现了问题,提示什么写入位置0x33632d44 发生访问冲突,这个程序是想找出十个数里的最大数和最小数,交换两个数的位置并且输出调整后的数组内容
[解决办法]
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"



int main()
{
    int max,min,nmax,nmin,i,p;
    int a[10]={0};

    for(i=0;i<10;i++)
    {
        scanf(" %d",&a[i]);
     }
     for(i=0;i<9;i++)
    {if(a[i]>a[i+1])
        {
            max = a[i];
            nmax = i;
        }
        else
        {
            min = a[i];
            nmin = i;
        }
}
    p=nmin;
    a[nmin]=a[nmax];
    a[nmax]=a[p];

    for(i=0;i<10;i++)
    {
        printf(" %d",a[i]);
    }

    system("pause");
    
    return 0;
}
if(a[i]>a[i+1])
        {
            max = a[i];
            nmax = i;
        }
当i=9时 数组越界了
[解决办法]
输入第10个数时 i = 9 ,a[i + 1]越界了
[解决办法]
第一步,输入a[0],比较a[0]和a[1]
第二步,输入a[1],比较a[1]和a[2]
第三步,……

哪里有问题,只要去找,就不难找到
如果这么简单的问题都要别人帮你找,那楼主最好希望将来自己的工作也由别人代做
[解决办法]
学习调试技巧是程序员的必经之路.共勉吧.
[解决办法]
长度为10的数组,它的索引为0~9,这是C初学者经常没有注意到的地方。

热点排行