如何从已经规定的数组中随机取出一个元素?

比如我用a[5]存进去五个学生的学号,然后让电脑从这个数组中随机挑出个数,请问这个随机怎么弄?还有挑出这个随机产生的数后,再把他从数组中删去,咋弄啊!!!有思路,但是我解决不了!!!如果可以能写下代码吗?C语言刚刚学完,感觉好多东西都解决不了。。。。

这样吧 我先给写思路 你还不会再追问我

先贴 随机产生 0 至 n-1 的数值的代码(ps: 回答的编辑器右上角 有个代码语言 可以方便贴代码的)

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
srand( time(NULL) );
for( i = 0; i < 20; i++ )
printf( "Random number #%d: %d\n", i, (int)(11.0*rand()/(RAND_MAX)) ); 
return 0;
}

这样就可以产生 剩余学生学号 的位置  

然后是删除 如果删除int a[5] 中的 a[2] 就把 a[3] a[4] 向前移动一位 然后 剩余学生数量减一

再根据剩余学生数量 随机一个数值 再删除

其中每次都要判断 学生数量是否为 0 如果为0 就结束 


先这样吧。。。

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-03
array_rand($arr[, $num])$arr == 用来取元素的数组$num == 随机取下标的个数其中第二个参数 $num 是可选的,默认为1 。注意:它的返回值在第二个参数大于 1 的时候是一个数组;当第二个参数不设或者传值 1 的时候是一个下标。简单的示例代码如下:1、第二个参数不传值的情况;$arr = Array('a', 'b');$rndKey = array_rand($arr);echo $arr[$rndKey];//输出 a 或者 b2、第二个参数传值大于 1 的情况;$arr = Array('a', 'b', 'c', 'd');$rndKey = array_rand($arr, 2);print_r($rndKey]);//输出一个随机key的数组本回答被网友采纳