请各位帮忙解决一下
定义一个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; }