C语言:用冒泡排序和选择排序把10个数进行排序
1个回答
展开全部
#include "stdio.h"//选择法排序
void main()
{ void sort(int *p,int n);
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
scanf("%d",p++);
p=a;
sort(p,10);
for(i=0;i<10;i++)
printf("%d ",*p++);
putchar('\n');
return;
}
void sort(int *p,int n)
{
int i,k,j,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(*(p+j)>*(p+k)) k=j;
if(k!=i)
{t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}
}
}
冒泡法排序:
#include<stdio.h>
int main()
{ int a[10];
int i,j,t;
printf("请输入十个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
putchar('\n');
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{ t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("排序后:\n");
for(i=0;i<10;i++)
printf("%d\t",a[i]);
putchar('\n');
return 0;
}
void main()
{ void sort(int *p,int n);
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
scanf("%d",p++);
p=a;
sort(p,10);
for(i=0;i<10;i++)
printf("%d ",*p++);
putchar('\n');
return;
}
void sort(int *p,int n)
{
int i,k,j,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(*(p+j)>*(p+k)) k=j;
if(k!=i)
{t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}
}
}
冒泡法排序:
#include<stdio.h>
int main()
{ int a[10];
int i,j,t;
printf("请输入十个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
putchar('\n');
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{ t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("排序后:\n");
for(i=0;i<10;i++)
printf("%d\t",a[i]);
putchar('\n');
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询