C语言随机数序列编程:用C语言程序编写。生成随机数序列。范围:1-15要求生成1-15的随机序列,中间无重复

C语言随机数序列编程:用C语言程序编写。生成随机数序列。范围:1-15。要求生成1-15的随机序列,中间无重复。
例如;01 13 03 14 05 06 15 1109 10 08 12 02 04 07

//希望您你有帮助!
#include <stdio.h>
#include <time.h>

int main()
{
int a[15] = {0};
int count = 0;

srand(time(NULL));
while ( 1 )
{
int r = rand()%15 + 1;

if (++a[r] > 1)
continue;
else
{
printf("%02d ", r);
if (count++ > 15)
break;
}
}
return 0;
}
运行结果:07 08 06 14 11 13 01 04 09 02 10 05 12 03
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-20
#include <stdlib.h>
  #include <stdio.h>
  #include <time.h> /*用到了time函数,所以要有这个头文件*/
  int main( void)
  {
  int number[15] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
  int i;
  srand((unsigned) time(NULL)); /*播种子*/
int t=15;
  for(i = 0; i < t; i++)
  {
  int p= rand() % (t-i); /*产生t-i以内的随机整数*/
  printf("%02d ", number[i]);
for(int j=p;j<t-i-1;j++)
{
p[j]=p[j++];
}

  }
  printf("\n");
  return 0;
  }本回答被网友采纳
第2个回答  2011-05-20
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int i;
int x[15];
int t=1,d=15;
srand(time(NULL)); /*初始化随机数种子*/
for(i=0;i<15;i++)
x[i]=rand()%(d-t)+t; /*生成一个[t,d)区间内的整数*/
for(i=0;i<15;i++)
printf("%d ",x[i]);
return 0;
}
第3个回答  2011-05-20
我当年学C语言的时候貌似没学到这个功能(但是应该有),C#就有这个功能,如下:
Random rNum=new Random();//声明产生随机数Random类的实例。
int [ ]numbers=new int[15];
for(int i=0;i<15;i++)
number[i]=rNum.Next(1,16);//把产生的15个随机数放入数组numbers中。
建议你不要太纠结于C语言,C语言只是学点基础而已,以后编程都用不到C语言的。把C
语言的基础学扎实这是必要的。貌似0-7章特别重要...后面的就不是多重要了。
相似回答
大家正在搜