求解,用C语言编写一个程序,随机生成100个数,并从大到小排序

如题所述

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "time.h"
#include "stdlib.h"
int main(void){
    int nDec[100],i,j,k;
    srand((unsigned)time(NULL));
    for(i=0;i<100;nDec[i++]=rand());
    for(i=0;i<100;i++){
        for(k=i,j=k+1;j<100;j++)
            if(nDec[k]<nDec[j]) k=j;
        if(i!=k){
            j=nDec[i];
            nDec[i]=nDec[k];
            nDec[k]=j;
        }
        printf("%d ",nDec[i]);
    }
    printf("\n");
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-08
//希望我的回答对你的学习有帮助

#include<stdio.h>
#include<stdlib.h>

int main()
{
int i,j;
unsigned seed;
int a[101];
printf("please input seed");
scanf("%d",&seed);//如果你每次输入的不一样,产生的100个随机数也不同
srand(seed);
for(i = 0; i < 100; i++)
a[i] = rand() % 10 +1;//这个10,是随机数的上限
for(i = 0; i < 100 ; i++)
for(j = i+1; j < 100; j++)
{
if(a[i]>a[j])
{
int temp  = a[i];
a[i] = a[j];
a[j] = temp;
}
}
for(i = 0;i < 100; i++)
printf("%d\t",a[i]);
printf("\n");
return 0;
}

第2个回答  2015-04-08
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
   int a[100];
   int i,j,t;
   srandom(time(NULL));   //初始化随机数种子
   for (i=0; i<100; i++)
      a[i] = random();   //获取100个随机数
      
   for (i=0; i<100; i++)   //冒泡法排序
       for (j=0; j<i; j++)
           if (a[i] < a[j])
           {
               t = a[i];
               a[i] = a[j];
               a[j] = t;
           }
   for (i=0; i<100; i++)  //输出结果
      printf("%d\n", a[i]);
}

第3个回答  2015-04-08
#include<stdio.h>
int main() {
    int a[100],i,j;
    for(i=0; i<100; i++)
        a[i]=rand();
    printf("排序前\n");
    for(i=0; i<100; i++)
        printf("%d ",a[i]);
    for(i=0; i<100; i++)
        for(j=0; j<100-i; j++)
            if(a[j]<a[j+1]) {
                int temp=a[j+1];
                a[j+1]=a[j];
                a[j]=temp;
            }
    printf("排序后\n");
    for(i=0; i<100; i++)
        printf("%d ",a[i]);
}
  

第4个回答  2015-04-08
int main(){
int[100] a;

//输入一百个随机数

for(int i=0;i<100;i++)
{
a[i]=rand();
}

sort(a);
}

//排序
int sort(a)
{
int i,j,temp;

for(i=0;i<100;i++)
scanf ("%d,",&a[i]);
for(j=0;j<100;j++)
{ for (i=0;i<100-j;i++)
if (a[i]>a[i+1])
{ temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;}
}
for(i=1;i<100;i++)
printf("%5d,",a[i] );
printf("\n");
}
相似回答