您的位置:

c语言降序编程,c语言数组排序

本文目录一览:

如何用C语言将一组数进行降序排列

假设有n个数。

#includestdio.h

void min(int *a,int *b)

{

int data;

if(*a*b)

{

data=*a;

*a=*b;

*b=data;

}

}

int main()

{

int t[10];//假设n=10,可以设置为其他数

int i,j,n=10;

for(i=0;in;i++)

scanf("%d",t[i]);

for(i=0;in-1;i++)

{

for(j=i;jn-1;j++)

{

min(t[j],t[j+1]);

}

}

for(i=0;in;i++)

printf("%3d",t[i]);

printf("\n");

return 0;

}

用c语言对n个整数进行降序排列,并输出排序结果

#include stdio.h

void sort(int*arr,int n);

int main(int argc, char *argv[])

{

int i;

int arr[8] = {12,67,122,0,-12,675,100,11};

sort(arr,8);

for(i=0;i8;++i)

printf("%d ",arr[i]);

return 0;

}

//冒泡排序 :降序

//arr:待排序的数组

//n:数组的长度 

void sort(int*arr,int n)

{

int i,j,t;

for(i=0;in-1;++i)

for(j=0;jn-1-i;++j)

{

if(arr[j]arr[j+1])

{

t  = arr[j];

arr[j] = arr[j+1];

arr[j+1] = t;

}

}

}

C语言的升序和降序

#includestdio.h

void main()

{

int a[5]={};

int i,j;

int temp=0;

for(i=0;i5;i++)

{

printf("请输入第%d个整数\n",i+1);

scanf("%d",a[i]);

}

for(i=1;i5;i++)

{

for(j=0;j5-i;j++)

{

if(a[j]a[j+1])....................//把大于号改成小于号

{

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

for(i=0;i5;i++)

{

printf("排序后的整数:%d\t",a[i]);

}

}

if(a[j]a[j+1])....................//把大于号改成小于号

C语言将数组a中的10个整数降序排列并输出,如何编程?

这个是自己输入10个整数,不想自己输的话就先给数组a赋初值,然后把下面程序里的输入语句去掉即可

#include stdio.h

void main()

{

int i,j,max,temp,a[10];

for(i=0;i10;i++)

scanf("%d",a[i]);

for(i=0;i10;i++)

{

max=i;

for(j=i+1;j10;j++)

if(a[max]a[j])

max=j;

temp=a[i];

a[i]=a[max];

a[max]=temp;

}

for(i=0;i10;i++)

printf("%d ",a[i]);

}

关于C语言进行降序排列

#include "stdio.h"

#define MAX 10

void sort(int *p,int n)

{int i,j;

int temp; //记录每一轮比较中最大值

int maxindex; //记录每一轮比较中最大值的下标

for (i=0;in;i++)

{

temp=p[i];

maxindex=i;

for (j=i+1;jn;j++)

if (tempp[j]) {temp=p[j];maxindex=j;}

if(maxindex!=i){p[maxindex]=p[i];p[i]=temp;}

}

}

/*

void sort(int *p)

{int i,j,k;

for (i=0;i9;i++)

for (j=i+1;j10;j++)

if (p[i]p[j]) {k=p[i];p[i]=p[j];p[j]=k;}

这个是简单选择排序,但是执行效率没有上面的高。不过对于比较小的基数,还是看不出来效率的优劣,如果在基数上百万时,效率高的执行时间将节省不少。

*/

main()

{

int a[MAX],i;

for (i=0;iMAX;i++)

scanf("%d",a[i]);

sort(a,MAX);

for(i=0;iMAX;i++)

printf("%d ,",a[i]);

}

用C语言编写,输入10个数按降序排列

源程序代码如下:

#define _CRT_SECURE_NO_WARNINGS//VS环境下需要,VC不需要

#includestdio.h//头文件;

int main()

{

int i = 0;

int j = 0;

double temp = 0;

double a[10] = { 0 };//定义三个变量和一个长度为10的数组;

printf("请输入十个数:\n");//显示“请输入十个数”

for (i = 0; i 10; i++)

{

scanf("%lf", a[i]);//从键盘上输入十个数送到数组; 

}

for (i = 1; i 10; i++)//for循环,进行9次循环;

{

for (j = i - 1; j = 0; j--)//for循环,在每次大的循环中,a[i]从a[1]依次与它前面的数比较;  

{

if (a[j + 1] a[j])

{

temp = a[j + 1];

a[j + 1] = a[j];

a[j] = temp;//如果a[j + 1]a[j],则把这两个数组元素互换,目的把最大的数放到前边;

}

else

{

break;

}

}

}

for (i = 0; i 10; i++)

{

printf("% lf\n", a[i]);//输出排好顺序的十个数;

}

return 0;//返回值为0;

}

程序运行结果如下:

扩展资料:

其他实现方法如下:

#includestdio.h

int mysort(int *a, int n)

{

int i, j, temp;

for (i = 0; i n - 1; i++)

{

for (j = 0; j n - 1 - i; j++)

{

if (a[j] a[j + 1])

{

temp = a[j + 1];

a[j + 1] = a[j];

a[j] = temp;

}

}

}

return 0;

}

int main()

{

int a[10];

int i, j;

printf("input 10 numbers:\n");

for (i = 0; i 10; i++)

{

printf("the number%d is:", i + 1);

scanf("%d", a + i);

fflush(stdin);

}

mysort(a, 10);

for (i = 9; i = 0; i--)

printf("%3d", a[i]);

printf("\n");

return 0;

}