C语言中如何实现,在1到6之间产生随机数并存入数组中,数组一共有12个数据,12个数据里面各有两个相同的数

NSMutableArray *number = [[NSMutableArray array] retain];
srand((int)time(0));
for (int i=1; i<=12; i++) {
int pNumber = (random(5))+1;
[image addObject:pNumber];
}
这样经常出现几次同样的重复数字,如何保证一个数字只存储2次?
上面写错了 后面那行应该是[number addObject:pNumber];

ctspot同学,我不懂,烦请把详细程序贴上来吧,感激不尽!

大致算法如下:
定义一个数组都初始化为0用来储存1~6的使用的次数,
如calc[7] (a[0]不用)
calc[1]~calc[6]分别储存1~6的使用的次数
每当产生一个随机数放入temp,若calc[temp]>2则重新产生直到calc[temp]<=2才把pNumber=temp
然后calc[temp]++
具体程序由于我不会NSMutableArray我把它放在num数组中
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
void main()
{
srand((unsigned)time(NULL));
int temp,calc[7]={0},num[13];
int i;
for(i=1;i<=12;i++)
{
while(1)
{
temp=rand()%6+1;
if(calc[temp]<2)
{
num[i]=temp;
calc[temp]++;
break;
}
}
}
for(i=1;i<=12;i++)
cout<<num[i]<<endl;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-13
int m,p,i,j;
for (i=1; i<=12; i++) {
while(1){
p=(random(5))+1;
for(j=0,j<[numble count],j++)
if(p==[numble objectAtIndex : j ]){
m++;
}
if(m<=2)
break;
}
int pNumber = p;
[image addObject:pNumber];

NSMutableArray应该不能直接添加int型数据吧..
出现几次同样的重复数字很正常吧..因为只有1到6的随机而已...
第2个回答  2011-02-13
那你在存储之前做个判断啊,是否该数已经出现2次以上?如果是,则放弃该数,重新取随机数,直到符合要求为止