#include<stdio.h>
#include<math.h>
int main()
{
int n;
scanf("%d", &n);
while (n != 0)
{
switch (n) {
case 1:
int qusort(int s[],int start,int end)
{
int i,j;
i=start;
j = end;
s[0]=s[start];
while(i<j)
{
while(i<j&&s[0]<s[j])
j--;
if(i<j)
{
s[i]=s[j];
i++;
}
while(i<j&&s[i]<=s[0])
i++;
if(i<j)
{
s[j]=s[i];
j--;
}
}
s[i]=s[0];
if (start<i)
qusort(s,start,j-1);
if (i<end)
qusort(s,j+1,end);
return 0;
}
int main()
{
int a[11], i;
printf("请输入10个数:\n");
for(i=1;i<=10;i++)
scanf("%d",&a[i]);
qusort(a,1,10);
printf("排序后的顺序是:\n");
for(i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
break;
case 2:
void bubbleSort(int *arr,int n)
{
int m,i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(arr[j]>arr[j+1])
{
m=arr[j];
arr[j]=arr[j+1];
arr[j+1]=m;
}
}
break;
default:
break;
}
scanf("%d", &n);
}
return 0;
}
#include<stdio.h>
#include<math.h>
int qusort(int s[], int start, int end)
{
int i, j;
i = start;
j = end;
s[0] = s[start];
while (i < j)
{
while (i < j && s[0] < s[j])
j--;
if (i < j)
{
s[i] = s[j];
i++;
}
while (i < j && s[i] <= s[0])
i++;
if (i < j)
{
s[j] = s[i];
j--;
}
}
s[i] = s[0];
if (start < i)
qusort(s, start, j - 1);
if (i < end)
qusort(s, j + 1, end);
return 0;
}
void bubbleSort(int* arr, int n)
{
int m, i, j;
for (i = 0; i < n - 1; i++)
for (j = 0; j < n - i; j++)
if (arr[j] > arr[j + 1])
{
m = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = m;
}
}
int main()
{
int n;
int a[11], i;
scanf("%d", &n);
while (n != 0)
{
switch (n) {
case 1:
printf("请输入10个数:\n");
for (i = 1; i <= 10; i++)
scanf("%d", &a[i]);
qusort(a, 1, 10);
printf("排序后的顺序是:\n");
for (i = 1; i <= 10; i++)
printf("%5d", a[i]);
printf("\n");
break;
case 2:
printf("请输入10个数:\n");
for (i = 1; i <= 10; i++)
scanf("%d", &a[i]);
bubbleSort(a,10);
printf("排序后的顺序是:\n");
for (i = 1; i <= 10; i++)
printf("%5d", a[i]);
printf("\n");
break;
default:
break;
}
scanf("%d", &n);
}
return 0;
}
方法写case里了 吧方法单独拿出来放主函数上面
如果放下面函数声明