leftstone 发布留言 2008-7-8 15:22
谁帮我改改啊
不知道错在哪里啊?急
题目:设计要求:
用C语言实现简单选择排序、冒泡排序和快速排序。
建议:
事先用数组保存无序数据,数据个数和每个元素的具体数据需要临时输入。
所有排序算法各用一个子程序来实现。
用C语言编写的程序,可以做一个菜单,用于选择排序方法,每次排序完成后,调用一个输出函数,在屏幕上显示排序结果。
#include
#define N 8
void bubblesort(int a[],int n)
{
int i,j,temp;
for(i=0;i=n-2;i++)
for(j=0;j=n-i-2;j++)
if(a[j]>a[j+1])
{temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
void selectsort(int a[],int n)
{
int i,j,k,temp;
for(i=1;i=n-2;i++)
{k=i;
for(j=i+1;j<=n-1;j++)
if(a[j] k=j;
if(k!=1)
{temp=a[k];
a[k]=a=temp;}
}
for(i=0;i printf("%d\t",a,int low,int high)
{
int t,i,j;
i=low;
j=high;
if(low{
t=a[low];
while(i!=j)
{
while(a[j]>t&&iif(i{
a;
i++;
}
while(a=a=t;
quicksort(a,low,i-1);
quicksort(a,i+1,high);
}
}
void main()
{
struct stb;
int k,c,i,a[N],n;
while(1)
{
clrscr();
printf(" menu \n");
printf("******************************\n");
printf("(1)bubblesort * \n");
printf("(2)selectsort * \n");
printf("(3)quicksort * \n");
printf("***************************** \n");
printf(" Please input which you want(1-3):");
do
{
scanf("%d",&c);
if(c<1||c>3)
printf("\nthe number is unnecessary; please input another number(1-3):\n");
}while(c<1||c>3);
switch(c)
{
case 1:
{clrscr();
printf("please input number\n");
for(i=0;i scanf("%d",a+i);
printf("please input location\n");
scanf("%d",&n);
bubblesort(a,n);
for(i=0;i printf("%d\t",a);
quicksort(a,1,n);
for(i=1;i<=n;i++)
{
if(i!=n)printf("%d ",a);
}
}
return 0; };break;
}
}
getch();
}
页: [1]