c语言数组大小排序函数 c语言数组从大到小排列

C语言:输入5个数,用调用函数的方法,从小到大排序 用简单点的#includestdio.h
void sort(float *a, int n)
{
int i,j,tmp;
for(i=0; in-1; i)
for(j=0; jn-i-1; j)
if(a[j]a[j 1])
{
tmp = a[j];
a[j] = a[j 1];
a[j 1] = tmp;
}
}
void main()
{
float a[5];
int i;
printf("请输入五个数(逗号隔开):");
scanf("%f,%f,%f,%f,%f",a[0],a[1],a[2],a[3],a[4]);
sort(a,5);
printf("排序后为:");
for(i=0; i5; i)
printf("%.2f ",a[i]);
printf("\n");
}
或者三个数的 。
void sort(int *a, int *b, int *c)
{
int tmp;
if(*a*b){
tmp = *b;
*b = *a;
*a = tmp;
}
if(*a*c){
tmp = *c;
*c = *a;
*a = tmp;
}
if(*b*c){
tmp = *c;
*c = *b;
*b = tmp;
}
return;
}
扩展资料:
C语言中没有预置的sort函数 。如果在C语言中 , 遇到有调用sort函数,就是自定义的一个函数,功能一般用于排序 。
一、可以编写自己的sort函数 。
如下函数为将整型数组从小到大排序 。void sort(int *a, int l)//a为数组地址,l为数组长度 。
{
int i, j;
int v;//排序主体
for(i = 0; il - 1; i)
for(j = i 1; jl; j)
{
if(a[i]a[j])//如前面的比后面的大,则交换 。
{
v = a[i];
a[i] = a[j];
a[j] = v;
}
}
}
对于这样的自定义sort函数,可以按照定义的规范来调用 。
二、C语言有自有的qsort函数 。
功 能: 使用快速排序例程进行排序 。头文件:stdlib.h
原型:
void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数:
1、待排序数组首地址 。
2、数组中待排序元素数量 。
3、各元素的占用空间大小4 指向函数的指针 , 用于确定排序的顺序,这个函数必须要自己写比较函数,即使要排序的元素是int , float一类的C语言基础类型 。
用C语言编写函数,功能是可以实现一维数组的从小到大的排序,数组长度为8#include stdio.h
void func(int *a)
{
int i,j,temp;
for(j=0;j=7;j)
{
for (i=0;i7-j;i)
if (a[i]a[i 1])
【c语言数组大小排序函数 c语言数组从大到小排列】{
temp=a[i];
a[i]=a[i 1];
a[i 1]=temp;
}
}
}
int main()
{
int a[8]={8,7,6,5,4,3,2,1};
func(a);
for(int i=0;i8;i)
{
printf("%d ",a[i]);
}
return 0;
}
func就是功能函数实现数组a[8]c语言数组大小排序函数的排序 。
c语言将数组从小到大排序有些简单的东西不用指针,用了有时反而会错
这是我以前写的
#include stdio.h
int main()
{
int i,j,x[100],y=0,a;
printf("请输入数字数量:\n");
scanf("%d",a);
printf("请输入各个数字:\n");
for(i=0;ia;i)
{
scanf("%d",x[i]);
}
printf("\n");
//输入
for(j=1;j=(a-1);j)
{
for(i=0;i(a-j);i)
{
if(x[i]x[(i 1)])
{
y=x[(i 1)];
x[(i 1)]=x[i];
x[i]=y;
}
}
}
//冒泡排序
for(i=(a-1);i=0;i--)
{
printf("%d",x[i]);
}
printf("\b\n");
for(i=0;ia;i)
{
printf("%d",x[i]);
}
printf("\b ");
//输出
return 0;
}
c语言编程: 将一组数按从大到小的顺序排序#include stdio.h
main()
{
int x;
printf("请输入要排序数字个数:");
scanf("%d",x);
int i,j,k,a,b,num[x];
printf("输入数据:");
for(i=0;ix;i)
scanf("%d",num[i]);
for(j=0;jx;j)
{
for(k=j 1;kx;k)
if(num[k]num[j])
{
a=num[j];
num[j]=num[k];
num[k]=a;
}
}
for(b=0;bx;b)
printf("%d ",num[b]);
return 0;
}
扩展资料:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时 , 预处理器会用别的文本取代该宏 。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置 。有两种方式可以指定插入头文件:
1、#include文件名
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式 。如下例所示:
#includelt;math.hgt;//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式 。
采用#include命令所插入的文件,通常文件扩展名是.h , 文件包括函数原型、宏定义和类型定义 。只要使用#include命令,这些定义就可被任何源文件使用 。
求C语言将数组元素大小排序?。?/h2>C语言将数组元素大小排序方法c语言数组大小排序函数:
以下使用c语言数组大小排序函数的是冒泡排序法实线数组从小到大排序 。
思想:每次相邻两个数比较,若升序,则将大的数放到后面,一次循环过后,就会将最大的数放在最后 。
10、2、3、4、5、6、9、8、7、1是输入的待排序的数列,经过第一次排序,将最大的,10放在最后,第二次排序,将剩下的2、3、4、5、6、9、8、7、1进行冒泡,将当前最大的9放在倒数第二的位置,以此类推 。
以下是具体代码:
#include stdio.h
int main(){
int nums[10] = {10, 2, 3, 4, 5, 6, 9, 8, 7, 1};
int i, j, temp, isSorted;
//优化算法:最多进行 n-1 轮比较
for(i=0; i10-1; i){
isSorted = 1;//假设剩下的元素已经排序好c语言数组大小排序函数了
for(j=0; j10-1-i; j){
if(nums[j]nums[j 1]){
temp = nums[j];
nums[j] = nums[j 1];
nums[j 1] = temp;
isSorted = 0;//一旦需要交换数组元素,就说明剩下的元素没有排序好
}
}
if(isSorted) break; //如果没有发生交换,说明剩下的元素已经排序好c语言数组大小排序函数了
}
for(i=0; i10; i){
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
扩展资料:
其他将数组从小到大排序的算法
以下使用的是选择排序法实现数组从小到大排序 。
思想:从第一个数开始,每次和后面剩余的数进行比较,若升序,则如果后边的数比当前数字?。?进行交换,和后面的所有的数比较、交换后,就会将当前的最小值放在当前的位置
输入的序列为10、2、3、4、5、6、9、8、7、1进行一次排序后将最小的数放在了第一位(a[0]与它后面的所有数进行比较,若a[0]比后面的数大,进行交换),以此类推 。
以下是具体代码:
#include stdio.h
int main(void){
int a[1001];
int n,i,j,t;
scanf("%d",n);//n为要排序的数的个数
//输入需要排序的数
for(i=0;in;i)
scanf("%d",a i);
//接下来进行排序
for(i=0;in-1;i)//因为每次需要和a[i]后面的数进行比较,所以到a[n-2](倒数第2个元素)就行
{
for(j=i 1;jn;j)//j从i后一个开始,a[i]与a[j]进行比较
{
if(a[i]a[j])//a[i]为当前值,若是比后面的a[j]大,进行交换
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}//每排序一次,就会将a[i](包括a[i])之后的最小值放在a[i]的位置
for(j=0;jn;j)
printf("%-5d",a[j]);
printf("\n\n");
}
return 0;
}
C语言sort函数如何使用C语言中没有预置的sort函数 。如果在C语言中c语言数组大小排序函数 , 遇到有调用sort函数c语言数组大小排序函数 , 就是自定义的一个函数c语言数组大小排序函数 , 功能一般用于排序 。
一、可以编写自己的sort函数 。
如下函数为将整型数组从小到大排序 。
void sort(int *a, int l)//a为数组地址,l为数组长度 。
{
int i, j;
int v;
//排序主体
for(i = 0; il - 1; i)
for(j = i 1; jl; j)
{
if(a[i]a[j])//如前面的比后面的大,则交换 。
{
v = a[i];
a[i] = a[j];
a[j] = v;
}
}}
对于这样的自定义sort函数,可以按照定义的规范来调用 。
二、C语言有自有的qsort函数 。
功 能: 使用快速排序例程进行排序
头文件:stdlib.h
原型: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数:
1 待排序数组首地址
2 数组中待排序元素数量
3 各元素的占用空间大小
4 指向函数的指针,用于确定排序的顺序
这个函数必须要自己写比较函数,即使要排序的元素是int,float一类的C语言基础类型 。
以下是qsort的一个例子:
#includestdio.h
#includestdlib.h
int comp(const void*a,const void*b)//用来做比较的函数 。
{
return *(int*)a-*(int*)b;
}
int main()
{
int a[10] = {2,4,1,5,5,3,7,4,1,5};//乱序的数组 。
int i;
qsort(a,n,sizeof(int),comp);//调用qsort排序
for(i=0;i10;i)//输出排序后的数组
{
printf("%d\t",array[i]);
}
return 0;
}
扩展资料:
sort函数的用法(C排序库函数的调用)
对数组进行排序,在c中有库函数帮c语言数组大小排序函数我们实现,这们就不需要我们自己来编程进行排序了 。
(一)为什么要用c标准库里的排序函数
Sort()函数是c一种排序方法之一,学会了这种方法也打消我学习c以来使用的冒泡排序和选择排序所带来的执行效率不高的问题c语言数组大小排序函数!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!
(二)c标准库里的排序函数的使用方法
I)Sort函数包含在头文件为#includealgorithm的c标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可!
II)Sort函数有三个参数:
(1)第一个是要排序的数组的起始地址 。
(2)第二个是结束的地址(最后一位要排序的地址的下一地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大 , 还可以不写第三个参数,此时默认的排序方法是从小到大排序 。
Sort函数使用模板:
Sort(start,end,排序方法)
下面就具体使用sort()函数结合对数组里的十个数进行排序做一个说明!
例一:sort函数没有第三个参数,实现的是从小到大
#includeiostream
#includealgorithm
using namespace std;
int main()
{
int a[10]={9,6,3,8,5,2,7,4,1,0};
for(int i=0;i10;i)
couta[i]endl;
sort(a,a 11);
for(int i=0;i10;i)
couta[i]endl;
return 0;
}
编译器
GCC,GNU组织开发的开源免费的编译器
MinGW,Windows操作系统下的GCC
Clang,开源的BSD协议的基于LLVM的编译器
Visual C:: cl.exe , Microsoft VC自带的编译器
集成开发环境
CodeBlocks,开源免费的C/CIDE
CodeLite,开源、跨平台的C/C集成开发环境
Orwell Dev-C , 可移植的C/CIDE
C-Free
Light Table
Visual Studio系列
Hello World
参考资料:百度百科-sort函数
关于c语言数组大小排序函数和c语言数组从大到小排列的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读