在主函数定义数组,循环输入n个元素,输入flag
如果flag=1,则自定义函数实现冒泡排序升序
如果flag=0,则自定义函数实现简单选择排序降序
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void mp(int *p,int n)
{ int i,j,flag;
for(i=0;i<n;i++)
{ int flag =999;
for(j=0;j<n-i-1;j++)
{
if(p[j]>p[j+1])
{
p[j]=p[j]^p[j+1];
p[j+1]=p[j]^p[j+1];
p[j]=p[j]^p[j+1];
flag=0;
}
}
if(flag==999)
{
break;
}
}
}
void xz(int *p,int n)
{
int i,j,max;
for(i=0;i<n;i++)
{
max=i;
for(j=i+1;j<n;j++)
{
if(p[max]<p[j])
{
max=j;
}
}
if(i!=max)
{
p[i]=p[i]^p[max];
p[max]=p[i]^p[max];
p[i]=p[i]^p[max];
}
}
}
void put(int *p,int n)
{ int i;
for(i=0;i<n;i++)
{
printf("%d\n",p[i]);
}
}
int main(int argc, const char *argv[])
{
int i,j,k,n,flag;
printf("循环输入几个元素?");
scanf("%d",&n);
int *p=malloc((4)*n);
printf("请输入flag");
scanf("%d",&flag);
for(i=0;i<n;i++)
{
scanf("%d",p+i);
}
if(flag==1)
{
mp(p,n);
put(p,n);
}
else if(flag==0)
{
xz(p,n);
put(p,n);
}
else
printf("输入错误");
return 0;
}