A41047. 排序问题
填空题
中等
知识点
题目描述
排序问题
题目描述
将四个整数进行从小到大的顺序排列,
输入格式
四个整数
输出格式
从小到大输出这四个数
样例输入
5 3 4 2
样例输出
2 3 4 5
参考答案
#include<stdio.h>
#include<malloc.h>
void maoSort(int R[],int n);
void print_(int R[],int n);
int main()
{
int n=4;/*序列长度为4*/
/*为数组开辟空间*/
int *R=(int *)malloc(n*sizeof(int));
while(scanf("%d",&R[0])!=EOF)
{
/*输入数据*/
for(int i=1;i<n;i++)
scanf("%d",&R[i]);
/*用冒泡排序*/
maoSort(R,n);
/*输出排序结果*/
print_(R,n);
free(R);
}
return 0;
}
/*==================================================*/
void maoSort(int R[],int n)
{
int p=0;/*用于一次遍历中是否发生交换*/
int term;
for(int i=0;i<n-1;i++)
{
p=0;
for(int j=0;j<n-i-1;j++)
{
if(R[j]>R[j+1])
{
/*进行交换*/
term=R[j];
R[j]=R[j+1];
R[j+1]=term;
/*交换标志置1*/
p=1;
}
}
/*如果没发生交换,说明序列有序,直接跳出循环*/
if(p==0)
break;
}
}
/*==================================================*/
void print_(int R[],int n)
{
for(int i=0;i<n-1;i++)
printf("%d ",R[i]);
printf("%d\n",R[n-1]);
}
上一题
下一题