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

数组为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}

第1个回答  2008-04-12
#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);
}
第2个回答  2008-04-12
看看符合要求不?

#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;
}
第3个回答  2008-04-12
#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();
}本回答被提问者采纳
相似回答