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

c语言实现数字排序

发布时间: 2023-03-07 05:17:01

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;

}

(1)c语言实现数字排序扩展阅读:

include用法:

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

插入头文件的内容

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

1、#include<文件名>

2、#include"文件名"

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

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

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

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

⑵ C语言数字排序

输入scanf是用的变量地址
&x
&y
&z
输出时,是用的变量x,
y,
z
所以sort3要改变这3个变量地址(指针)指向的值
#include
<stdio.h>
void
sort3(double
*x,
double
*y,
double
*z);
int
main(int
argc,
char
*argv[]){
double
x,y,z;
if(scanf("%lf
%lf
%lf",&x,&y,&z)==3){
sort3(&x,&y,&z);
printf("%lf\n%lf\n%lf\n",x,y,z);
}else{
fprintf(stderr,"Error:
Incorrect
format\n");
}
return
0;
}
void
sort3(double
*x,
double
*y,
double
*z){
double
a
=
*x,
b
=
*y,
c
=
*z;
printf("a:%f
b:%f
c:%f\n",a,
b,
c);//testing
if(*x
>
*y)
{
a
=
*y;
b
=
*x;
}
if(c
<
a)
{
*x
=
c;
*y
=
a;
*z
=
b;
}
else
if(c
<
b)
{
*x
=
a;
*y
=
c;
*z
=
b;
}
else
{
*x
=
a;
*y
=
b;
*z
=
c;
}
printf("sorted
numbers:\n");//testing
printf("%f
%f
%f\n",*x,
*y,
*z);//testing
}

⑶ 用c语言编写:实现一个用户输入的数字进行排序的程序。

#include <stdio.h>
void main()
{
int j,a[100],k,x;
int num=0,i=0;
printf("如果你想结束数字的输入,请输入-1\n");
printf("请输入数字");
scanf("%d",&x);
while(x!=-1)
{
a[num]=x;
num=num+1;
if(num>=10){printf("你最多只能输入100个数字\n");break;}
printf("请输入数字");
scanf("%d",&x);
}//输入数据,并且存到数组a中
printf("1----按升序排序\n");
printf("2----按降序排序\n");
printf("请输入你的选择:");
scanf("%d",&k);
while(k>2 || k<1)
{
printf("你的输入有误,请从新输入:");
printf("1----按升序排序\n");
printf("2----按降序排序\n");
scanf("%d",&k);
}
if(k==1)
{
for(i=0;i<num-1;i++)
for(j=i+1;j<num;j++)
if (a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
else
{
for(i=0;i<num-1;i++)
for(j=i+1;j<num;j++)
if (a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
printf("排序的结果\n");
for(i=0;i<num;i++)
printf("%d\n",a[i]);
}

⑷ 如何用C语言设计程序排列6个数字的大小顺序

排序数组可以使用冒泡算法:如果前一个数据比后一个大,则交换。

{

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

printf("Please input 6 integers: ");

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

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

for(i=0;i<5;i++) /* 冒泡法排序 */

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

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

{t=a[j];/* 交换a[i]和a[j] */

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

a[j+1]=t;

}

优点:

简洁紧凑、灵活方便:C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

以上内容参考:网络-c语言程序设计

⑸ C语言中将三个数字进行排序的几种写法

方法1:用3个变量存放3个数字,按从大到小的顺序排:

int a,b,c,tmp;

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

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

if(a<b)//如果a比b小,交换a和b的值,使a存放大的数字

{

tmp=a;

a=b;

b=tmp;

}

if(a<c)//如果a比c小,交换a和c的值,使a存放大的数字

{

tmp=a;

a=c;

c=tmp;

}

if(b<c)//如果b比c小,交换b和c的值,使b存放大的数字

{

tmp=b;

b=c;

c=tmp;

}

printf("按照从大到小的顺序为:%d,%d,%d ",a,b,c);

方法2:用数组存放3个变量,用冒泡排序的方法进行排序

int i=0,j=0,tmp=0,a[3];

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

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

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

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

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

if(a[i]<a[i+1])//按照从大到小排列

{

tmp=a[i];

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

a[i+1]=tmp;

}

printf("按照从大到小的顺序为:");

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

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

printf(" ");

⑹ C语言:对输入的十个数进行从小到大排序

1、首先打开编辑软件,新建一个c程序空文件,引入标准库和主函数,定义一个QuickSort函数用来排序,下面首先编写排序函数的:

⑺ C语言对N个数进行排序

!!!!!!!!
!!!!!!!!
!!!!!!!!
注:c语言中可以将数组长度定义为变量,只是这种方法在vs中编译不能通过,但在更为标准的dev中以及gcc中完全可以编译通过!
一定要给分啊!自己写的!
#include"stdio.h"
#include"conio.h"
int
main()
{
int
length;
printf("请输入要排序的数字个数:\n");
scanf("%d",&length);
int
data[length],i;
void
mbquicksort(int
*imput,int
start,int
end);
printf("请依次输入这些数字,以空格分隔:\n");
for(i=0;i
=x))++start;
imput[end]=imput[start];
}
imput[start]=x;
mbquicksort(imput,start,start-1);
mbquicksort(imput,start+1,end);
}
}

⑻ 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])就可以了。