当前位置:首页 » 编程语言 » c语言自动从大到小排序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言自动从大到小排序

发布时间: 2022-06-19 00:55:47

c语言如何用选择法排序任意输入十个数(从大到小、从小到大)

#include
<stdio.h>
main(void)
{
int
i,j,a[10],p=0,t=0,temp;
printf("请输入原数组:\n");
for(j=0;j<10;j++)
scanf("%d",&a[j]);
temp=a[0];
for(j=0;j<9;j++)
{
t=j;
temp=a[j];
for(i=j+1;i<10;i++)
if(temp>a[i])
//这是由小到大排序
如果是大到小则改为
if(temp<a[i])
{temp=a[i];p=i;}
{temp=a[p];a[p]=a[t];a[t]=temp;}
}
printf("排序后的数组为:\n");
for(j=0;j<10;j++)
printf("%d
",a[j]);
}

❷ C语言如何从大到小排序呢

汗!你插入节点时干什么去了???
用链表不用数组基本上就是为了两件事:
不受数组大小的限制、不需要“排序”(如果各个节点可以进行排序的话)
所以,如果你先把节点都一口气插入到了链表里,再考虑如何进行排序的话,那么你使用链表的意义已经丧失了一半!而且链表排序的效率明显不及数组。故建议你在插入新节点的时,应将其插入到“适当”位置,这样在增加新节点的同时,还能保证链表有序,因此根本不需要在后面进行排序!
修改你的插入节点的算法吧!虽然每次插入节点稍微麻烦些,但也绝对比你先一口气插入了全部节点再排序高效的多!

❸ C语言将其元素按由大到小排序

#include
#include
typedef
struct
_n{
int
data;
struct
_n*n;}nude;
nude*
c(void){
return
(nude*)malloc(sizeof(nude));}
nude
*h,*b;
void
pai(nude*
h){
nude
*p,*q;
int
temp;
for(p=h;p!=b;p=p->n)
for(q=p->n;q!=b;q=q->n)
if(p->data
data){
temp=q->data;
q->data=p->data;
p->data=temp;}}
int
main(){
int
n,t;
h=c();
b=h;
printf("输入数字(以'-1'结尾)\n");
while(scanf("%d",&t)==1&&t!=-1){
b->data=t;
b->n=c();
b=b->n;}
pai(h);
printf("输出:\n");
while(h!=b){
printf("%d
",h->data);
h=h->n;}
return
0;}

❹ C语言:输入10个数依次从大到小排序!

用数组来存放十个数字,使用“冒泡排序”来实现排序。10个数字需进行9轮扫描,每次扫描时比较相邻的二个数,如它们不符合要求的大小关系,就交换它们的位置。第一轮扫描结束时,最大的数就“沉”到最后。于是第二的范围就少了一个数。再进行第二两栖型、第三轮,…——直到第9轮就完成了。最后输出结果。
#include<stdio.h>
int
main()
{
int
a[10],i,j,t;
printf("请输入10个整数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf("排序以后的数:\n");
for(i=0;i<10;i++)
printf("%d
",a[i]);
printf("\n");
system("pause");
return
0;
}
如果要从大到小排,只要把上面的交换条件
if(a[j]>a[j+1])换为
if(a[j]<a[j+1])就可以了。

❺ c语言编程: 将一组数按从大到小的顺序排序

#include <stdio.h>

main()

{

int x;

printf("请输入要排序数字个数:");

scanf("%d",&x);

int i,j,k,a,b,num[x];

printf("输入数据:");

for(i=0;i<x;i++)

scanf("%d",&num[i]);

for(j=0;j<x;j++)

{

for(k=j+1;k<x;k++)

if(num[k]>num[j])

{

a=num[j];

num[j]=num[k];

num[k]=a;

}

}

for(b=0;b<x;b++)

printf("%d ",num[b]);

return 0;

}

(5)c语言自动从大到小排序扩展阅读:

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include<文件名>

2、#include"文件名"

如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:

#include&lt;math.h&gt;//一些数学函数的原型,以及相关的类型和宏

如果需要包含针对程序所开发的源文件,则应该使用第二种格式。

采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。

❻ C语言如何输入十个数,按从大到小顺序排列!

用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:

#include<stdio.h>

int main()

{

int i,j,a[10],t;

printf("输入数");

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

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

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

{

for (j = i + 1; j < 10;j++)

if (a[i] < a[j]){

t = a[i];

a[i] = a[j];

a[j] = t;

}

}

printf("从大到小");

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

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

return 0;

}

(6)c语言自动从大到小排序扩展阅读:

代码还可以设计,如下:

#include<stdio.h>

int main()

{

int a[10],i,j,t;//定义数组;

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

scanf("%d",&a[i]);//给数组赋值;

}

for(i=0;i<9;i++)//10个数,进行9轮比较;

for(j=0;j<10-i;j++){//第一个数比较9次,依次递减;

if(a[j]>a[j+1]) {//交换值;

t=a[j];

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

a[j+1]=t;

}

}

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

printf("%d ",a[i]);//输出数组的值;

}

return 0;

}

}

printf("the sorted numbers: ");

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

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

printf(" ");

}

❼ c语言输入任意5个实数,按照由大到小排序输出

用C语言实现如下功能:从键盘输入5个实数,可以使用冒泡排序法把他们降序输出。

#include “stdio.h”

main()
{
int a[8];

int j,i;

for(i=0;i<5;i++)
{
printf(“请输入第%d个数:\n”,i+1);

scanf(“%d”,&a[i]);

}

for(i=0;i<;j++)

for(i=0;i<5–j;i++)
{
if(a[i]>a[i+1])
a[i+1]=a[i];

}

for(i=0;i<5;i++)
printf("\n排序后的结果是:%d\n",a[i]);
return 0;
}

❽ 用C语言比较三个数的大小,并按照从大到小排序

#include <stdio.h>
#include <math.h>
int main(void)
{

int a,b,c;
printf("请输入任意三个整数a,b,c:");
scanf("%d%d%d",&a,&b,&c);
int s;
if(a>b)s=a,a=b,b=s;//比较a,b大小,通过赋值,使得a<b 。此语句目的:a<b
if(a>c)s=a,a=c,c=s;//进一步比较a,c大小,通过赋值得出最小值,并赋给a; 此语句目的:a<c
if(b>c)s=b,b=c,c=s;//最后比较出b,c中的较大值。
printf("从大到小的顺序依次是:%d%d%d",c,b,a);
return 0;
}

❾ C语言中要把三个数从大到小排列出来应该怎么编

初学简单版本代码如下:

#include<stdio.h>

int main( )

{

int a, b, c;//定义三个数的变量

int t ;//定义作为交换的变量

scanf ( "%d%d%d" , &a, &b, &c ) ; //取值

if ( a < b )

{t = a; a = b; b = t ;};//如果a,b,进行交换,反之不动

if ( a < c )

{t = a; a = c; c = t ;};//同上

if ( b < c )

{t = b; b = c; c = t ;};

printf( "%-5d%-5d%-5d " , a, b, c);//输出

}

(9)c语言自动从大到小排序扩展阅读:

C语言中其他多个数排序的方法:

1、冒泡排序法

#include <stdio.h>

#define SIZE 8

void bubble_sort(int a[], int n);

void bubble_sort(int a[], int n)

{

int i, j, temp;

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

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

{

if(a[i] > a[i + 1])

{

temp = a[i];

a[i] = a[i + 1];

a[i + 1] = temp;

} } }

int main()

{

int number[SIZE] = {95, 45, 15, 78, 84, 51, 24, 12};

int i;

bubble_sort(number, SIZE);

for (i = 0; i < SIZE; i++)

{

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

}

}

2、选择排序

#include<stdio.h>

void main()//主函数

{

int a[10];

int i,j,w;

printf("请输入10个数字: ");

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

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

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

{

for(j=i+1;j<10;j++)

if(a[i]<a[j])//进行比较

//比较后进行交换

{

w=a[i];

a[i]=a[j];

a[j]=w;

}