用随机函数产生9个[0,20]的随机整数,将其放入到数组中,用选择排序法将数组按从小到大的顺序排

。求大神把建立这一程序过程具体步骤告知

#include<stdio.h>

#include<stdlib.h>

#include<time.h> //随机数用到srand函数,我们用当前时钟生成种子来用,所以要这个头文件

#define N 9 //定义数据个数,下面程序都用这个定义来做

void main()

{ int a[N],i,j,k;
  srand((unsigned int)time(NULL)); //给随机数一个种子,使每次生成的都不同
  for ( i=0;i<N;i++ ) a[i]=rand()%21; //随机数rand()生成是在0~0xffffffff之间

                                                          //%21后会在0~20之间,这是取尾数的办法
  for ( i=0;i<N;i++ ) printf("%d ",a[i]); printf("\n"); //输出显示
  for ( i=0;i<N-1;i++ ) //选择排序:从头1个数开始(下标=0),每次选之后所有数中的最小数

                                   //i之后就是i+1到N-1,每次选完后交换到下标为i的位置,做N-1次

  {
    for ( j=i+1,k=i;j<N;j++ ) if ( a[k]>a[j] ) k=j; //j=i+1~N-1,k先记录a[i]的下标,

                                                                        //如果发现记录下标的数比a[j]则记j

                                                                        //这样找一遍记录的肯定是最小的那个下标

    j=a[i]; a[i]=a[k]; a[k]=j; //利用j交换a[i]和a[j]中存储的数,a[k]是a[i]之后最小的数
  }
  for ( i=0;i<N;i++ ) printf("%d ",a[i]); printf("\n"); //输出显示

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-12-30
是vb语言?还是C?追问

vb

追答Private Sub Command1_Click()
Dim x(1 To 9) As Integer
Dim n, i, j As Integer
n = 9
For i = 1 To n
    x(i) = int(rnd*20)
Next
For i = 1 To n - 1
    For j = i + 1 To n
        If x(i) > x(j) Then
        temp = x(i): x(i) = x(j): x(j) = temp
        End If
    Next j
Next i
For i = 1 To 9
    Print x(i);
Next
End Sub

用随机函数产生9个[0,20]的随机整数,将其放入到数组中,用选择排序法将...
include \/\/随机数用到srand函数,我们用当前时钟生成种子来用,所以要这个头文件 define N 9 \/\/定义数据个数,下面程序都用这个定义来做 void main(){ int a[N],i,j,k; srand((unsigned int)time(NULL)); \/\/给随机数一个种子,使每次生成的都不同 for ( i=0;i<N;i++ ) a[i]=...

...100的整数并放入一个数组中,使用选择排序法按照从大到小的顺序排 ...
excel可以实现 。

用随机数函数产生10个40内的整数,使用快速选择排序法从小到大排序
Next i For i = 0 To 9 Print 数值(i)Next i End Sub

...今输入一个数按原来排序的规律将他插入数组中
a[i++] = a[i] 不合理, 改成 a[i+1] = a[i]

编写程序:随机产生10个整数并存入数组中,用"选择排序法"对数组中的随机...
include<stdio.h>void main(){ int a[10],i,j,t,k; for(int i=0;i<10;i++) {srand(i);a[i]=rand();} for(i=0;i<10-1;i++) { for(k=i,j=i+1;j<10;j++) if(a[k]<a[j]) k=j; if(i!=k) { t=a[i]; a[i]=a[k]; a[k]...

给定N个不同的整数,要求对这N个整数按如下规则排序并输出。
具体实现时,我们可以根据这些排序算法的思想和步骤,编写相应的代码来对整数数组进行排序。代码的基本流程是:1. 定义一个包含N个不同整数的数组。2. 选择合适的排序算法。3. 根据所选算法的步骤,对数组进行排序。4. 输出排序后的数组。在代码实现过程中,需要注意一些细节问题,如数组边界的处理、...

利用随机函数产生10个两位正整数,使用选择排序算法将其从小到大排序,并...
} } void main(){ int i,j;srand((int)time(0));for (i=0; i<10; i++){ a[i]=10+rand()%90;printf("%d ", a[i]);} sort(a,10);printf("\\nAfter Sort:\\n");for (i=0; i<10; i++){ printf("%d ", a[i]);if(i%5==4)printf("\\n");} getch();} ...

编写程序,随机产生一个10个元素组成的一堆数组,要求按升序进行排列.
1、首先创建一个简单的demo数组用于测试,代码如图所示。2、通常会按数组长度随机键值来获取随机数作为键值获取,可是这种方法不能作用于以字符串为键名的数组,每次只能返回一个随机元素,需要多次随机,容易获取到相同的元素,代码如下图所示。3、使用array_rand(array,number),默认返回1个数组的随机键名...

利用随机函数产生10个【1,100】的随机整数 (1) 打印这10个数 (2...
Dim a(10)Randomize Print "随机产生10个[1,100]之间的整数"For i = 1 To 10 a(i) = Int(Rnd * 100)Print a(i);Next Print Print "使用选择排序法从大到小排序"For i = 1 To 10 For j = 1 To i If a(i) > a(j) Then t = a(i): a(i) = a(j): a(j) = t N...

C语言,用选择法对数组中10个整数按由小到大排序?求解释!!!
选择排序的思想是:每一趟的排序过程都是在当前位置后面剩下的待排序对象中选出值最小的那个,然后放到当前位置上。该程序中k的定义主要是为了存放数组中最小数的位置。然后通过t=array[k];array[k]=array[i];array[i]=t;这三条语句,再把这数组中最小的数字放到前面。注意C语言当中的“=”不...

相似回答