数组的一个小问题?
怎么数组内的元素位置?
如整型数组的数据为:
1
3
5
3
2
打乱后变成:
3,
2,
5,
3,
1
只要与以前的位置不一样就行。
问题点数:20、回复次数:5Top
1 楼defstu(玛瑙石)回复于 2003-08-04 13:59:28 得分 0
交换随机位置的元素就好了Top
2 楼pushser(捕食者)回复于 2003-08-04 14:01:56 得分 5
听不懂?可以使用随机函数啊!
首先得到这个数组的大小,然后使用随机值(在这个大小范围内),当出现重复,就跳过。
假设取得的循环数为
4\3\2\5\1
然后按顺序将数字放进去
1\2\5\3\2
之后的数组为
{2,5,2,1,3}
这样就达到目的了啊!Top
3 楼cnxiaohai(相声独一处(回归,为了编程,为了C,为了CSDN))回复于 2003-08-04 14:08:41 得分 5
我就写伪代码了
for (i=0;i<5;i++)
{
j=随机产生i到5之间的一个数;
交换下标i 和 j的数字
}Top
4 楼defstu(玛瑙石)回复于 2003-08-04 14:11:42 得分 5
en,
int a[5]={0,1,2,3,4};
for (register int i=0;i<5;++i) swap(a[i],a[int(random()*5)]);Top
5 楼robertcarlos(还我信誉分)回复于 2003-08-04 14:26:02 得分 5
for (i=1;i<6;i++)
scanf(a[i]);
for (i=5;i>0;i--)
printf("%d",a[i]);Top




