这是为什么?

boy8765 2003-10-20 09:17:07
我在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
...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weibz0525 2003-10-21
  • 打赏
  • 举报
回复
这快速排序算法的毛病不少,自己多检查一下
freshman2003 2003-10-20
  • 打赏
  • 举报
回复
数组越界??
Behard 2003-10-20
  • 打赏
  • 举报
回复
debug 一下嘛
阿发伯 2003-10-20
  • 打赏
  • 举报
回复
排序函数sort有问题,至少这一句应修改:
while(arr[R]>arr[numMiddle]) //中间元素与后半部分进行比较
{
R++; // 改为R--;
}
huangjuliang 2003-10-20
  • 打赏
  • 举报
回复
程序有问题!

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧