您的位置:首页 > 其它

合并两个静态数组并排序

2013-10-16 22:08 267 查看
#include <stdio.h>

int main(void)
{
int a[]={9,2,1,0,5};
int b[]={6,7,8,4,3};
int c[10];
int i,j;

for(i=0;i<5;i++)
{
c[i]=a[i];
c[i+5]=b[i];
}

for(i=0;i<10;i++)
printf("%d",c[i]);

for(i=0;i<10;i++)
for(j=i+1;j<11;j++)
if(c[i]<c[j])
{
c[i]^=c[j];
c[j]^=c[i];
c[i]^=c[j];
}

printf("\n");
for(i=0;i<10;i++)
printf("%d",c[i]);
return 0;
}
//合并静态数组并排序升级版,用字符串来进行数组排序!
//(有缺陷,因为编码的关系排序数列中不能含有空格!)
#include <stdio.h>
#define N 11 //为什么这里长度为11?

int main(void)
{
char a[]= "92105" ;
char b[]={"67843"};//上下两个的区别?()
char c
={'\0'}  ;//为什么需要初始化为{'\0'}?
int i,j;

puts(a);puts(b);

//**********将数组a,b合并到c**********
for(i=0;i<5;i++)
{
c[i]   = a[i];
c[i+5] = b[i];
}

//**********打印输出C**********
puts(c);

//**********冒泡排序**********
for(i=0;i<N;i++)
for(j=i+1;j<=N;j++)
if(c[i]<c[j])
c[i]^=c[j]^=c[i]^=c[j];//特殊的异或交换
/*
相当于下面的交换情况
c[i]^=c[j];		TEMP=c[j];
c[j]^=c[i];		c[i]=c[j];
c[i]^=c[j];		c[i]=TEMP;
*/

//**********打印输出排序后的C**********
puts(c);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: