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

四个数排序用c语言吗

发布时间: 2022-11-14 04:37:39

㈠ 任意输入4个整数,从大到小排列输出。c语言程序怎么写

个整数的排序,有使用单个变量和使用数组二种方法实现。
使用单个变量的方法:
#include<stdio.h>
int main()
{int a,b,c,d,t;
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(a>d){t=a;a=d;d=t;}
if(b>c){t=b;b=c;c=t;}
if(b>d){t=b;b=d;d=t;}
if(c>d){t=c;c=d;d=t;}

printf("%d %d %d %d\n",a,b,c,d);
return 0;
}

使用数组和循环的方法:
#include<stdio.h>
int main()
{int a[4],i,j,t;
for(i=0;i<4;i++) //读入4个数据
scanf("%d",&a[i]);
for(i=0;i<3;i++) //冒泡排序
for(j=0;j<3-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}

for(i=0;i<4;i++) //输出4个数据
printf("%d ",a[i]);
printf("\n");
return 0;
}

㈡ c语言4个数排序怎么弄

不用数组就比较麻烦了
代码简不了
main()
{
int
a,b,c,d,t;
/*
四个数
和一个中间变量
*/
/*
这里任意赋值
*/
a=222;
b=10;
c=102;
d=99;
/*
从小到大排
*/
if(
a
>
b
)
{
t
=
a;
a
=
b;
b
=
t;
}
/*
判断a和b
*/
if(
b
>
c
)
{
t
=
b;
b
=
c;
c
=
t;
}
/*
判断b和c
*/
if(
c
>
d
)
{
t
=
c;
c
=
d;
d
=
t;
}
/*
判断c和d
*/

/*
现在d是最大的,已经排到最后了 接下来只用排a
b
c */
if(
a
>
b
)
{
t
=
a;
a
=
b;
b
=
t;
}
/*
判断a和b
*/
if(
b
>
c
)
{
t
=
b;
b
=
c;
c
=
t;
}
/*
判断b和c
*/

/*
现在c也是a
b
c
中最大的
再比较a
b就行*/
if(
a
>
b
)
{
t
=
a;
a
=
b;
b
=
t;
}
/*
判断a和b
*/
/*
排完,输出
*/
printf("%d
%d
%d
%d\n",
a,
b,
c,
d);
}
/*
本例采用的是冒泡法排序思路
*/

㈢ C语言 四个数排序

建议换个算法,如冒泡排序,你的算法可读性比较差,代码如下。
#include<stdio.h>
void main()
{
int a[4];
int i,j,temp;
printf("please input data:\n");
for(i=0 ;i<4; i++)
{
scanf("%d",&a[i]);
}

for(i=0; i<4; i++)
{
for(j=0; j<4-i; j++)
{
if(a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf("result:\n");
for(i=0 ;i<4; i++)
{
printf("%d\n",a[i]);
}
}

㈣ 4个数比较大小,结果从小到大排列,用C语言怎么编

1、首先双击打开桌面上的C-Free5编程软件。

㈤ C语言需要四个数从小到大排序怎么编程

#
include
<stdio.h>void
main
(){
int
t,a,b,c,d; printf("请输入4个数;");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
if(a>b)
{t=a;a=b;b=t;} if(a>b)
{t=a;a=b;b=t;}}
if(a>c)
{t=a;a=c;c=t;}
if(a>d)
{t=a;a=d;d=t;}
if(b>c)
{t=b;b=c;c=t;}
if(b>d)
{t=b;b=d;d=t;}
if(c>d)
{t=c;c=d;d=t;}
printf("排序结果如下:\n");
printf("%d
%d
%d
%d
\n",a,b,c,d);
C语言即中文版的C语言,是一种面向过程的计算机程序设计语言。

㈥ C语言怎么实现输入四个数abcd按从大到小输出

个整数的排序,有使用单个变量和使用数组二种方法实现。
使用单个变量的方法:
#include<stdio.h>
int main()
{int a,b,c,d,t;
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(a>d){t=a;a=d;d=t;}
if(b>c){t=b;b=c;c=t;}
if(b>d){t=b;b=d;d=t;}
if(c>d){t=c;c=d;d=t;}

printf("%d %d %d %d\n",a,b,c,d);
return 0;
}

使用数组和循环的方法:
#include<stdio.h>
int main()
{int a[4],i,j,t;
for(i=0;i<4;i++) //读入4个数据
scanf("%d",&a[i]);
for(i=0;i<3;i++) //冒泡排序
for(j=0;j<3-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}

for(i=0;i<4;i++) //输出4个数据
printf("%d ",a[i]);
printf("\n");
return 0;
}

㈦ 使用c语言为4个数字abcd进行排序

#include<stdio.h>

intmain()
{
chara[4]={1,2,3,4};
charb[4];
inti,j,m,n;
for(i=0;i<4;i++)
{
b[0]=a[i];
for(j=0;j<4;j++)
{
if(j!=i)
{
b[1]=a[j];
for(m=0;m<4;m++)
{
if(m!=j&&m!=i)
{
b[2]=a[m];
for(n=0;n<4;n++)
if(n!=j&&n!=i&&n!=m)
{
b[3]=a[n];
printf("%d%d%d%d ",b[0],b[1],b[2],b[3]);
}
}
}
}
}
}
return0;
}

数据自己输入数组当中这个没写,这个是最古老的方式但是也是最容易理解的

㈧ 初学c语言,四个数排序,用if。中间的几个if语句看不懂,能给我讲讲吗

第一个if,作用是:如果a>b,就借用tem变量,把a 和b的值交换一下。确保交换之后a不大于b。
第二个if,执行后,把a与c中较小的数放在a中,即a不大于c。
第三个if,确保了a不大于d。
通过运行前三个if语句,把abcd四个数中最小的数字放在了变量a中。
同样,第四和第五个if语句,把bcd三个数中最小的数字放在了b变量中。
最后一个if,把小数放在c中,而把最大的数放到d中。
从而实现了排序的目的。
有什么问题请留言。

㈨ 输入4个整数,要求从大到小排列(用C语言的IF语句)

就是冒泡算法咯:
把序列底部的数字跟上面的数字依次比较,如果比上面的大就把他们交换位置,直到比上面的小为止,这样把每个数字都这样弄一次数列就按顺序排好了。

void main()
{
int a[3];
int i,temp;

for(i=0;i<4;i++)
{
scanf("%d",&a[i]);
}

for(i=0;i<4;i++)
{
int j;
for(j=0;j<=4-i;j++)
{

if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}

}
}

for(i=0;i<4;i++)
{
printf("%d",a[i]);
}

}

㈩ 四个数字排序的C语言程序

汗,。。。。。任意一本家才上都有 什么冒泡 选择 插入排序都是啊

、排序算法
(1)分析
因为每一趟排序都使有序区增加了一个气泡,在经过n-1趟排序之后,有序区中就有n-1个气泡,而无序区中气泡的重量总是大于等于有序区中气泡的重量,所以整个冒泡排序过程至多需要进行n-1趟排序。
若在某一趟排序中未发现气泡位置的交换,则说明待排序的无序区中所有气泡均满足轻者在上,重者在下的原则,因此,冒泡排序过程可在此趟排序后终止。为此,在下面给出的算法中,引入一个布尔量exchange,在每趟排序开始前,先将其置为FALSE。若排序过程中发生了交换,则将其置为TRUE。各趟排序结束时检查exchange,若未曾发生过交换则终止算法,不再进行下一趟排序。

(2)具体算法
void BubbleSort(SeqList R)
{ //R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序
int i,j;
Boolean exchange; //交换标志
for(i=1;i<n;i++){ //最多做n-1趟排序
exchange=FALSE; //本趟排序开始前,交换标志应为假
for(j=n-1;j>=i;j--) //对当前无序区R[i..n]自下向上扫描
if(R[j+1].key<R[j].key){//交换记录
R[0]=R[j+1]; //R[0]不是哨兵,仅做暂存单元
R[j+1]=R[j];
R[j]=R[0];
exchange=TRUE; //发生了交换,故将交换标志置为真
}
if(!exchange) //本趟排序未发生交换,提前终止算法
return;
} //endfor(外循环)
} //BubbleSort
4、算法分析
(1)算法的最好时间复杂度
若文件的初始状态是正序的,一趟扫描即可完成排序。所需的关键字比较次数C和记录移动次数M均达到最小值:
Cmin=n-1
Mmin=0。
冒泡排序最好的时间复杂度为O(n)。

(2)算法的最坏时间复杂度
若初始文件是反序的,需要进行n-1趟排序。每趟排序要进行n-i次关键字的比较(1≤i≤n-1),且每次比较都必须移动记录三次来达到交换记录位置。在这种情况下,比较和移动次数均达到最大值:
Cmax=n(n-1)/2=O(n2)
Mmax=3n(n-1)/2=O(n2)
冒泡排序的最坏时间复杂度为O(n2)。

(3)算法的平均时间复杂度为O(n2)
虽然冒泡排序不一定要进行n-1趟,但由于它的记录移动次数较多,故平均时间性能比直接插入排序要差得多。

(4)算法稳定性
冒泡排序是就地排序,且它是稳定的。