标题:谁帮我改改啊
只看楼主
leftstone
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-7-3
 问题点数:0 回复次数:0 
谁帮我改改啊
不知道错在哪里啊?急


题目:设计要求:
用C语言实现简单选择排序、冒泡排序和快速排序。
建议:
    事先用数组保存无序数据,数据个数和每个元素的具体数据需要临时输入。
    所有排序算法各用一个子程序来实现。
    用C语言编写的程序,可以做一个菜单,用于选择排序方法,每次排序完成后,调用一个输出函数,在屏幕上显示排序结果。



#include <stdio.h>
#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]<a[k])
  k=j;
  if(k!=1)
  {temp=a[k];
   a[k]=a[i];
   a[i]=temp;}
  }
  for(i=0;i<N;i++)
  printf("%d\t",a[i]);
}
void quicksort(int a[],int low,int high)
{
int t,i,j;
i=low;
j=high;
if(low<high)
{
t=a[low];
while(i!=j)
{
while(a[j]>t&&i<j)j--;
if(i<j)
{
a[i]=a[j];
i++;
}
while(a[i]<t&&i<j)i++;
if(i<j)
{
a[j]=a[i];
j--;
}
}
a[i]=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<N;i++)
             scanf("%d",a+i);
             printf("please input location\n");
             scanf("%d",&n);
             bubblesort(a,n);
             for(i=0;i<N;i++)
             printf("%d\t",a[i]);};break;
       case 2:
            {clrscr();
             printf("please input number\n");
             for(i=0;i<N;i++)
         scanf("%d",a+i);
             selectsort(a,n);};break;
       case 3:
           {while(scanf("%d",&n)!=EOF)
            {clrscr();
             for(i=1;i<=n;i++)
             scanf("%d",&a[i]);
             quicksort(a,1,n);
             for(i=1;i<=n;i++)
              {
               if(i!=n)printf("%d ",a[i]);
               else printf("%d\n",a[i]);
              }
            }
            return 0; };break;
         }
    }
   getch();
}
搜索更多相关主题的帖子: 改改 
2008-07-08 15:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-223088-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.290739 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved