这是为什么?
我在BCB6上用C语言写了一个快速排序的程序,如下:
//------------------------------------------------------------------------
//快速排序
#include <stdio.h>
#define COUNT 10
#pragma hdrstop
//---------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int i,a[COUNT];
void sort(int arr[],int left,int right); //left和right分别为数组下标范围
for(i=0;i<COUNT;i++) //输入需要排序的数字
{
scanf("%d",a[i]);
}
sort(a,0,9); //函数调用
for(i=0;i<COUNT;i++) //输出经过排序后的数字
{
printf("%5d",a[i]);
}
getchar();
getchar();
return 0;
}
//---------------------------------------------------------------------
void sort(int arr[],int left,int right)
{
int L,R,temp,numMiddle; //numMiddle为中间元素的下标
numMiddle=(left+right)/2;
L=left;
R=right;
do
{
while(arr[L]<arr[numMiddle]) //中间元素与前半部分进行比较
{
L++;
}
while(arr[R]>arr[numMiddle]) //中间元素与后半部分进行比较
{
R++;
}
if(L<=R) //前半部分元素与后半部分元素交换
{
temp=arr[L];
arr[L++]=arr[R];
arr[R--]=temp;
}
}while(L<=R);
if(L<right) //如果后半部分元素个数不止一个则递归调用
{
sort(arr,L,right);
}
if(left<R) //如果前半部分元素个数不止一个则递归调用
{
sort(arr,left,R);
}
}
------------------------------------------------------------------------
我在输入十个数字后,按Enter.出现了如下的英文框(我是初学者,不会发送这个东东,我就按顺序把它抄写下来。昨天在调试冒泡排序时也出现这个框),我不知道这是在哪出现了问题,还是在安装BCB6时在某些方面还没有做好。请网友指点,不胜感激!(框内容、形式大致如下所示:)
Debugger Exception Notification
project project2.exe raised exception class EAccessVio
(这个位置一个很大的叉) -lation with message 'Access violation at address 32656DFF.Read of address FFFFFFFF',process stopped.use step or Run to continue.
OK Help
view cpu window