解决方案 »
- NSSavePanel设置以文件后缀过滤setAllowedFileTypes遇上的问题
- udp接收数据显示中文乱码,大家帮帮忙,指导指导,谢谢
- 如何让ViewControll中添加的UIView能监听到屏幕的方向转变事件?谢谢,有完整测试代码下载和说明
- ios中,用FMDB第三方内裤怎样创建具有主从关系的两张表?能给个demo最好
- 请问怎么实现Forward、back
- IOS LocalAuthentication
- 求教
- 请各位大神进来看一下,关于模拟器和storyboard的问题
- 判断wifi是否开启
- uicollectionviewcell 里的子控件创建不成功
- 如何让ios7的表格边角为圆角
- 超级菜鸟求助~
//35选7(随机生成7个不相同的数字35之内)要求尽量提高效率
这个例子的思路楼主可以看看
#include <stdio.h>
#include <time.h>
#include <stdlib.h>#define TOTAL 35
#define CHOOSE 7int main()
{
int arr[TOTAL] = {0,};
int choose[CHOOSE] = {0, };
int i = 0;
int randid = 0;
for (i=0;i<TOTAL;i++)
{
arr[i] = i+1;
}
srand(time(NULL));
for (i=0;i<CHOOSE;i++)
{
randid = rand()%(TOTAL-i);
choose[i] = arr[randid];
arr[randid] = arr[TOTAL-i-1];
}
for(i=0;i<CHOOSE;i++)
{
printf("%2dt", choose[i]);
} return 0;
}
1.根据数组的个数,来随机生成数组的下标索引,因为根据这个下标索引就可以得到数组中对应的元素。
2.如何存储元素,并保证不重复。这里可以使用NSMutableSet来存储已经获取的随机出来的值,NSMutableSet的作用就是能保证这里存储的值不会出现重复。
3.根据NSMutableSet中已经存储的个数作为while循环的条件,来循环生成随机数。退出循环的条件就是NSMutableSet中的数量已经超过你想要生成的数量。