c语言生成0到9不重复的随机数存到二维数组中

如题所述

#include<stdio.h>       //提供printf函数声明定义
#include<stdlib.h>      //提供srand函数声明定义,rand
#include<time.h>        //提供time函数
int is_same(int *t,int lo,int x);
int main()
{
int a[10];
int num=20;
int t,i;
srand(time(0)); 
 //此函数提供种子,即time(0)系统时间秒数。这让rand()函数提供的数字每秒都不一样

while(num>0)   //循环次数
{
for(i=0;i<10;i++)        //获取一行10个数
{
while(1)             //每次随机获取一个数
{
t=rand()%10;
if(i==0)
{
a[i]=t;
break;
}
if(is_same(a,i,t)==0) //必须不相同才能获取一行的下一个数
{
a[i]=t;
break;
}
}
printf("%d ",t);
}
printf("\n");
num--;

}
return 0;
}
int is_same(int *t,int lo,int x) //是否有相同
{
int i;
for(i=0;i<lo;i++)
{
if(*(t+i)==x)    //如果有相同的返回真
return 1;
}
return 0;          //否则返回假
}

追问

这个我看过,是一维数组的,我想存进二维数组,一行10个,就是一组随机数,总共9行。你这个代码我尝试这改过,不过失败了。能帮我改改么

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-07-04
生成一个随机数,判断数组中是否存在,如果存在再生成另一个、不存在存放数组中
~
~
~
~
相似回答