用随机函数获取一个数,这个随机函数所能获取到数的范围要在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++
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)