C语言 利用函数调用进行排序——冒泡法
2014-08-26 20:20
302 查看
//Title冒泡排序,利用函数调用
#include<stdio.h>
#define M 10//宏定义修改M的值
void Bubble_sort(int a[])
{
int i,j,t;
for(j=0;j<M;j++)
for(i=0;i<M-j;i++)
if(a[i]<a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
}//数组传递为地址传递,此函数结束后排序结束,无需返回值
main()
{
int i,a[M];
printf("Please input several numbers at will)\n");
for(i=0;i<M;i++)
scanf("%d",&a[i]);
Bubble_sort(a);//函数调用,定义在调用之前就不需要声明
printf("The sorted numbers are following:\n");
for(i=0;i<M;i++)
printf("%d ",a[i]);
}
//给定10个乱序的数,先排序后合理插入数
#include<stdio.h>
#define M 11
void Bubble_sort(int a[])//冒泡排序
{
int i,j,temp;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
void insert(int a[],int x)//插入函数
{
int i,j,temp;
for(i=0;i<10;i++)
if(x<a[i])
{
for(j=9;j>=i;j--)
a[j+1]=a[j];
break;
}
a[i]=x;
}
int main()
{
int x;
int a[M]={23,32,4,54,5,63,2,5,24,53};
printf("排序插入前:\n");
for(int i=0;i<M-1;i++)
printf("%d ",a[i]);
printf("\n");
Bubble_sort(a);
printf("Please input x:\n");
scanf("%d",&x);
insert(a,x);
printf("排序插入后:\n");
for(int i=0;i<M;i++)
printf("%d ",a[i]);
return 0;
}
结果如下:
#include<stdio.h>
#define M 10//宏定义修改M的值
void Bubble_sort(int a[])
{
int i,j,t;
for(j=0;j<M;j++)
for(i=0;i<M-j;i++)
if(a[i]<a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
}//数组传递为地址传递,此函数结束后排序结束,无需返回值
main()
{
int i,a[M];
printf("Please input several numbers at will)\n");
for(i=0;i<M;i++)
scanf("%d",&a[i]);
Bubble_sort(a);//函数调用,定义在调用之前就不需要声明
printf("The sorted numbers are following:\n");
for(i=0;i<M;i++)
printf("%d ",a[i]);
}
//给定10个乱序的数,先排序后合理插入数
#include<stdio.h>
#define M 11
void Bubble_sort(int a[])//冒泡排序
{
int i,j,temp;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
void insert(int a[],int x)//插入函数
{
int i,j,temp;
for(i=0;i<10;i++)
if(x<a[i])
{
for(j=9;j>=i;j--)
a[j+1]=a[j];
break;
}
a[i]=x;
}
int main()
{
int x;
int a[M]={23,32,4,54,5,63,2,5,24,53};
printf("排序插入前:\n");
for(int i=0;i<M-1;i++)
printf("%d ",a[i]);
printf("\n");
Bubble_sort(a);
printf("Please input x:\n");
scanf("%d",&x);
insert(a,x);
printf("排序插入后:\n");
for(int i=0;i<M;i++)
printf("%d ",a[i]);
return 0;
}
结果如下:
相关文章推荐
- 冒泡对10个数排序,函数调用。
- 利用函数调用形式,传递一维数组名进行函数调用
- 利用函数调用,对数组进行初始化,更改,清零,逆置等操作
- 利用“指针”对主调函数中数组进行排序,(菜鸟知道模块化)
- 利用函数调用,对数组进行初始化,更改,清零,逆置等操作
- 在SQL2005中利用DENSE_RANK()排名函数对现有数据进行排序改造
- 利用函数指针对数组进行排序
- C语言:利用指针和函数调用编写字符串拷贝函数strcpy
- C语言之函数调用18—多字符串排序
- 参考C语言的qsort函数实现一个一个能对任意数据类型(包括结构体)的数组进行排序的函数(里面用的不是快速排序)
- 第十六周 利用指针对两个数字进行排序(函数版)
- 通过函数调用对字符串数组进行各种排序
- 利用C++标准库函数对数组进行排序
- C语言:利用排序二叉树进行排序
- 利用数组名作为函数参数传递排序和用指针进行排序
- 调用库函数进行的qsort快速排序
- C语言:利用指针和函数调用编写字符串拷贝函数strcpy
- 在SQL2005中利用NTILE()排名函数对现有数据进行排序改造
- 利用函数调用,对数组进行初始化,更改,清零,逆置等操作
- 利用函数指针对数组进行排序