请各位帮忙解决一下
定义一个50个int的数组,随机产生50个不同的整数,从大到小排序
程序代码:
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
void sequence(int *a);
int main()
{
srand(time(0));
int a[50];
printf("原始数据为\n");
for(int i=0;i<50;i++)
{
a[i]=rand(); //生成随机数
printf("%6d",a[i]);
if(0==(i+1)%5)printf("\n");
}
sequence(a); //排序方法
printf("\n排序之后\n");
for(int i=0;i<50;i++)
{
printf("%6d",a[i]);
if(0==(i+1)%5)printf("\n");
}
getchar();
}
void sequence(int *a)
{
int max,k,t;
for(int i=0;i<50;i++)
{
max=a[i];k=i;
for(int j=i;j<50;j++)
{
if(max<a[j]){max=a[j];k=j;}
}
t=a[i];a[i]=a[k];a[k]=t;
}
}

程序代码:#include <stdio.h>
#include <time.h>
int main(void)
{
int a[50]={0},i,j,k,n;
srand(time(NULL));
for(i=0;i<50;i++)
{
n=rand();
for(j=0;j<i;j++) /* 找插入点 */
{
if( n > a[j] )
{
for(k=i;k>j;k--) /* 元素往后移 */
a[k]=a[k-1];
break;
}
else if( n == a[j] ) /* 如有相同再重新生成这个整数 */
{ i--; break;}
}
a[j]=n; /* 插入到数组 */
}
for(i=0;i<50;i++) /* 打印 */
{
printf("%-7d",a[i]);
if((i+1)%10==0) printf("\n");
}
printf("\n\n");
return 0;
}