用C语言如何实现从数组中随机取出任意7个数(7个数不相等)

供稿:hz-xin.com     日期:2025-01-15
c++ 从数组中随机的取出一个数(不能重复)

代码如下:
import java.util.Arrays;
public class suiji {
public static void main(String[] args) {
int[] arrays=new int[33];
for(int i=1;i<34;i++) {
arrays[i-1]=i;
}
int a=0;
while(a<8) {
a++;
int i=(int)(Math.random()*arrays.length);
System.out.print(arrays[i]+"");
arrays[i] = arrays[arrays.length-1];
arrays = Arrays.copyOf(arrays, arrays.length-1);
}
}
}

扩展资料
C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。

欢迎采纳:
写好了随即生成7个1到36之间的数 代码如下
#include
#include
using namespace std;
int main()
{
srand(time(NULL));
int i,n;
int*a=new int[7];
for(i=0;i<7;i++)
{
n=rand()%35+1;
a[i]=n;
}
for(i=0;i<7;i++)
{
cout<<a[i]<<endl;
}
return 0;
}

#include <stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{int a[36],g,flag=0,n=0,leap=0;
for(int i=1;i<36;i++)
a[i]=i;
srand((unsigned)time(NULL));
do{
do{
g=rand()%35+1;

for(i=1;i<36-n;i++)
if(a[i]==g){flag=1;leap=0;break;}
else leap=1;}while(leap);
if(flag)
for(;i<36-n-2;i++)
a[i]=a[i+1];
printf("\n第%d个数为:%d",n+1,g);
n++;
}while(n<7);
}

看看符合要求不?

#include<stdio.h>
#include<time.h>
int main()
{
int a,i,j,m;
int a[35]={1,2,3,…………33,34,35};//自己补全。
srand(time(0));
for(i=0;i<7;i++)
printf("%d",a[rand()%35]);
return 0;
}

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 35
void main()
{
int a[N]={1,2,3,4,5,6,
7,8,9,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,
24,25,26,27,28,29,30,31,
32.33,34,35};
int flag[N]={0},b[7];
srand(time(NULL));
for(int i=0;i<7;i++)
{
int index=rand()%N;
if(flag[index]==0)
{
b[i]=a[index];
flag[index]=1;
}
else
i--;
}
for(i=0;i<7;i++)
printf("%d ",b[i]);
printf("\n");
getchar();
}

c语言 把一个数组中重复的数字,取出一个出来。
include <stdio.h> \/\/ 升序数组srcvoid sort(int *src, int len){ int tem; for (int i = 0; i < len; i++) { for (int j = 0; j < len - i - 1; j++) if (src[j] > src[j+1]) { tem = src[j]; src[j] = src[j+1]; src[j...

C语言随机数组中自然数的前100项中抽取10项由大到小排序
include <stdio.h> include include <stdlib.h> int main(){ int a[10] = {0};int i, j, t;\/\/产生1~100的随机数(10个)srand(time(NULL));for(i = 0; i < 10; i++){ a[i] = rand() % 100 + 1;} \/\/从小到大排序 for(i = 0; i < 9; i++){ for(j = i ...

c++ 从数组中随机的取出一个数(不能重复)
其他回答 方法很多复制该数组随机的生成一个不大于该数组长度的数获取该位置的值,并赋0以后每遇到该位置是0的跳过知道该数组中为0 isoftbaby | 发布于2012-08-30 举报| 评论 2 0 为您推荐: c 生成随机数组 c time c语言随机数 rand c c中产生随机数的函数 c 随机字符 怎么得到随机数组 ...

c语言数组怎样单独取出某一列的数据?
用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。例程:#include<stdio.h>#include<string.h>void main(){ char a[100],b[100],c[100]; int i=3,j=4,k=0; \/\/第三行,第四列 FILE *fp = fopen("data.txt","...

如何从已经规定的数组中随机取出一个元素?
这样吧 我先给写思路 你还不会再追问我 先贴 随机产生 0 至 n-1 的数值的代码(ps: 回答的编辑器右上角 有个代码语言 可以方便贴代码的)include <stdio.h>#include <stdlib.h>int main(){int i;srand( time(NULL) );for( i = 0; i < 20; i++ )printf( "Random number #%d:...

如何从已经规定的数组中随机取出一个元素?
对于你的问题,推荐你使用链表实现。因为C语言的数据,要动态地删除某一个元素实在是件很麻烦的事。而使用链表,会使删除操作更加便捷和高效。2. 随机性,可以使用C语言中的Random()函数帮你实现,这个函数会产生一个0到N之间的随机数,你可以将其生成的随机数作为元素的序号,然后删除该结点。

c语言问题 任意输入其中一个数,查找它在数组中的位置
任意输入其中一个数查找代码如下:include<stdio.h> int main(){ int a[10]={20,40,50,70,80,10,15,25,45,100};int i,b,c;char t,y,n;do{ printf("请输入20,40,50,70,80,10,15,25,45,100十个数中任意一个:\\n");scanf("%d",&b);printf("b=%d\\n",b);for(i=0;i<...

c语言,求0~7中任意随机取5个不同的数的组合算法
\/\/敢问,那错了?include <stdio.h> include <stdlib.h> include void main(){ int i = 0, j = 0;int a[5];srand((unsigned)time(NULL));for (i = 0; i < 5; ++i){ a[i] = rand()%8;for (j = 0; j < i; ++j){ if (a[j] == a[i]) break;} if (j < ...

在c语言中怎样从数组中取出一个数
在c语言中,无法直接返回一个数组,但是可以通过返回对应类型指针的方式,返回数组。在大多数情况下,一维数组和一维指针是可以通用的。比如,定义一个函数,申请一定长度的整型动态数组,其长度用参数传入,并将结果返回。如出错,返回空指针null。代码可以写成如下形式:int *int_array_create(int n)\/\/...

c语言数组怎样单独取出某一列的数据?
用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。例程:#include<stdio.h>#include<string.h>void main(){ char a[100],b[100],c[100]; int i=3,j=4,k=0; \/\/第三行,第四列 FILE *fp = fopen("data.txt","...