如何在oc语言的可变数组中取一部分不相同的随机值

如何在oc语言的可变数组中取一部分不相同的随机值,第1张

思路是这样的:

你首先要有一个数组,数组里要有元素.

用随机函数获取一个数,这个随机函数所能获取到数的范围要在0到数组长度-1之间

然后通过这个随机数作为下标获取到数组里对应的元素.

将这个元素添加到数组里.

如果你希望得到不相同的值,那么就要循环你装获取元素的数组,每次添加之前都要循环一次,判断里面是不是有相同的值,如果没有,添加进去.

思路就是这样.

打字不易,望采纳.

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

#include <time.h>

/*主程序

大小不定,可变的数组,可以通过将指针指向动态分配的内存来实现功能.

程序功能:输入数组长度,分配内存空间,利用随机数生成数组元素并输出*/    

int  main(){ 

     int i,n

     int *p//指针,下面用来指向动态分配空间

     

     srand((unsigned)time(NULL))//初始化随机数种子

     printf("number of array elements:\n") 

     while(scanf("%d",&n)!=NULL){ //输入长度n, ctrl+z结束循环

      p=(int *)malloc(sizeof(int)*n)//分配空间

         

      for(i=0i!=n++i){

        *(p+i)=rand()%100//生成100以内随整数

        printf("%2d ", p[i])//访问p

      }

      printf("\n")

    }

     return 0

}

这儿假如的是五道题,你可以更改值的。这儿只用了一个button和一个label控件

using System

using System.Collections.Generic

using System.ComponentModel

using System.Data

using System.Drawing

using System.Text

using System.Windows.Forms

using System.Collections

namespace WindowsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent()

}

ArrayList arr = new ArrayList()//定义一个可变数组

Random ran = new Random()//随机种子

public int a = 0//单击button的次数

private void Form1_Load(object sender, EventArgs e)

{

for (int i = 0i <5i++)//循环五次,因为这儿地定义的是五个题

{

int ss=ran.Next(1,6)//获取随机数

while (arr.IndexOf(ss)!=-1)//判断数组中是否已经有这个数,如果有就重新赋值,没有就不执行

{

ss = ran.Next(1,6)

}

arr.Add(ss)//将随机数添加进数组中

}

}

private void button1_Click(object sender, EventArgs e)

{

if (a <5)//判断单击按钮的次数

{

label1.Text = arr[0].ToString()//给label赋值

arr.RemoveAt(0)//删除数组中的值

}

a++

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11960487.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存