对一个数组随机赋值,降序排序后将重复的值删除赋值到一个新数组中,新数组打印乱码
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void sort(int num[],int n[],int x);
int main()
{
int num[10],n[10],i,length;
srand(time(NULL));
for(i=0;i<10;i++)
num[i]=rand()%9+1;//随机赋值
printf("排序前:");
for(i=0;i<10;i++)
printf("%d ",num[i]);//原数组
printf("\n");
sort(num,n,10);//排序
length=sizeof(n)/sizeof(n[0]);//计算数组长度
printf("\n数组长度:%d\n\n",length);
printf("排序后:");
for(i=0;i<length;i++)
printf("%d ",n[i]);//排序后
return 0;
}
void sort(int num[],int n[],int x)
{
int i,j,box;
for(i=0;i<x;i++)
for(j=0;j<x;j++)
if(num[j]<num[j+1])
{
box=num[j];
num[j]=num[j+1];
num[j+1]=box;
}//冒泡排序
for(i=0;i<x;i++)
for(j=i+1;j<x;j++)
{
if(num[j]!=num[i])
n[i]=num[i];
if(num[j]==num[i])
break;
}
}