设计一个算法,要求在20个数字中(0到19)随机选取十个数字,但是这十个数字不能重复(用C语言或者OC实现)

本文介绍了如何设计一个算法,该算法在0到19的数字范围内随机选择10个不重复的数字。通过使用数组存储随机数并检查新产生的数字是否与已生成的数字相同,来确保生成的数字唯一。当遇到重复时,算法会重新生成新的随机数。整个过程在C语言和Objective-C中进行了说明。
摘要由CSDN通过智能技术生成
#import <Foundation/Foundation.h>

#pragma mark -- 设计一个算法,要求在20个数字中(0到19)随机选取十个数字,但是这十个数字不能重复(用C语言或者OC实现)

//思路:随机产生十个数,使用数组存储,将新产生的随机数同之前的随机数进行比较。如果前面已经产生相同的随机数,那么重新赋值,直到产生不同的随机数为止。(需要定义标记位来判断)


int compareOfNumbers(int array[],int n, int m)
{
int flag = 1;
for (int i = 0 ; i < m ; i ++) {
//如果产生的随机数跟之前的数有重复的,置 flag 为 0;
if (array[i] == n) {
flag = 0;
}
}
return flag; //返回flag的值。
}

void radomOfTenNumbers()
{
int array[20];
int flag = 0; //定义标记,区别元素相同的情况。
for (int i = 0 ; i < 10 ; i ++) {
//方法一: 使用goto语句
// loop:array[i] = arc4random() % 20 ; //随机产生一个0--19之间的数。
// flag = compareOfNumbers(array,array[i],i); //产生的随
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值