我是刚选修的c 语言,对于这方面,了解甚少,周一就交作业了,自己真的作不出来了.
有懂得请发表一下,最好有语句,谢谢了 .
----------------解决方案--------------------------------------------------------
任意搜索一下,排序算法就很多,数据结构区有个排序的帖子.
----------------解决方案--------------------------------------------------------
我去看看,谢了!
----------------解决方案--------------------------------------------------------
把两组数用函数链接后,再用冒泡排序法排好就OK了``
----------------解决方案--------------------------------------------------------
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void main()
{
int arr[20];
int i,j,temp; //temp为中转变量
srand(time(0));
for (i=0;i<20;i++)
{
arr[i]=rand()%500+1; //产生1-500之间的随机数
printf("%d ",arr[i]);
}
printf("\n\n");
for(i=0;i<20-1;i++) //外层循环 即当i=0时就说明是第一个元素要和后面的元素比较19次
{
for(j=i+1;j<20;j++) //内层循环依次和后面的数组元素进行比较,比较完了就返回进行第一次外层循环
{
if(arr[i]>arr[j]) //如果前面的数大于后面的数就互换位置,意思就是前面的数总是小的
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
printf("ASC序列为:"); //升序排列
for (i=0;i<=19;i++)
{
printf("%d ",arr[i]);
}
printf("\n\n");
for(i=0;i<20-1;i++)
{
for(j=i+1;j<20;j++)
{
if(arr[i]<arr[j])
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
printf("DESC序列为:"); //降序排列
for (i=0;i<=19;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
}
----------------解决方案--------------------------------------------------------
楼上 相当正确。。
就跟我们老师一样。
厉害。
佩服。
钦佩。
----------------解决方案--------------------------------------------------------