您的位置:

c语言随机配对,c语言如何随机

本文目录一览:

c语言的随机函数怎样用?、

#include stdlib.h

#include time.h

int main( )

{

int a[100]; /* 存放随机数的数组 */

time_t t1; /* 用于存放时间 */

time(t1); /* 取得当前系统时间 */

srand(t1); /* 设置随机数种子 */

for (i = 0; i 100; i ++) /* 循环生成10个随机数,放到数组a中 */

a[i] = 10 + rand( ) % 90;

/* 数值范围在10到99间,需要不同范围的数据请自行更改 */

...

}

输入一个数与c语言产生随机数相同则输出,不相同则失败

#include stdio.h

#include time.h

#include stdlib.h

#include math.h

void main()

{

int rand_num();

int a,guess;

a=rand_num();

scanf("%d",guess);//输入

if(guess==a){

printf("yes,%d",a);

}

else printf("NO");

}

int rand_num()//产生1个随机数

{

int a;

srand((unsigned)time(0));

a=rand()%10;

return a;

}

下面送你一个才数字的游戏程序:

#include stdio.h

#include time.h

#include stdlib.h

#include math.h

void rand_num(int v[]);

void main()

{

int math[4],guess[4];int result[4]; //math用来装产生的随机的4位数,guess用来装玩家猜的4位数,result用来放映匹配的结果

int i,j,n=0,b,a,d;//n用来标志是否还有竞猜的机会,b位玩家输入的4位数

int c;//用于检验每一位都配对正确

rand_num(math);//装数字不相同的4个数进入math

printf("竞猜不同数字的4位数开始!(共10次机会)\n");

while(n!=10){

scanf("%d",b);//玩家输入猜的4位数

d=1;

while(d){

for(i=0;i4;i++){//把4位数的每一位装入guess中

guess[i]=(b%(int)pow(10,4-i))/(int)pow(10,3-i);

}

d=0;

for(i=0;i4;i++){

a=guess[i];

if(a==guess[i-1]||a==guess[i-2]||a==guess[i-3]){

d=1;

}

}

if(b9876||b0123){//如果输入的不是4位数,重新输入

d=1;

}

if(d){

printf("请输入不同数字的4位数\n");

scanf("%d",b);//玩家输入猜的4位数

}

}

for(i=0;i4;i++){//初始化result

result[i]=0;

}

for(i=0;i4;i++){ //系统对输入的数与抽到的数进行匹配。并装放映结果入result中

for(j=0;j4;j++){

if (guess[i]==math[i]){

result[i]='A';

break;

}

else if (guess[i]==math[j]){//扫描guess中的每一位的数是否有与math某一位相同的数

result[i]='B';

break;

}

else result[i]='*';

}

}

printf("匹配结果提示如下:");

for(i=0;i4;i++){//显示配对结果。

printf("%c",result[i]);

}

printf("\n");

c=0;//初始化C。不然的话之前c可能为1、 2、 3

for(i=0;i4;i++){//如果匹配完全正确,退出竞猜循环

if(result[i]=='A'){

c++;

}

}

if(c==4){

n=10;

}

else {

n++;

printf("错误!请重新竞猜\n");

}

}

printf("系统随机抽到的4位数结果如下:\n");

for(i=0;i4;i++){ //输出随机的4位数

printf("%d",math[i]);

}

printf("\n");

}

//产生数字不相同的4位数

void rand_num(int v[])//产生数字不相同的4位数

{

int a,i; //用来装暂时产生的随机数的个位数

srand((unsigned)time(0));

for(i=0;i4;i++){ //给4个位装随机值

a=rand()%10;

while(a==v[i-1]||a==v[i-2]||a==v[i-3]){//数组下标是负数的话就是上一个单元的值。一般不是个位数

a=rand()%10;

}

v[i]=a;//产生随机数,取其个位数

}

}

C语言怎么实现随机分配?

srand(

(unsigned)time(

NULL

)

);

;

num=rand()%k;

用这个生成随机数你应该会吧

然后给6个长方形每个一个随机数,排序,然后将较大的2个一组,较小的2个一组,中间2个一组

也可以给每个方块一个0-2的随机数,同时在生成随机的时候加特判,如果对应数字的组里满了就重作随机

由于方块数少,不用太在乎算法时间复杂度

c语言 随机生成 10 个除法算式(被除数和除数都为 1-100 之间的整数,并且被除数能为除数整除)?

代码文本:

#include "stdio.h"

#include stdlib.h

#include "time.h"

int prime(int n){//素数

int i;

if(n2 !(n1) || n2)

return 0;

for(i=3;i*i=n;i+=2)

if(!(n%i))

return 0;

return 1;

}

int main(int argc,char *argv[]){

int n,m,i,w,s;

srand((unsigned)time(NULL));

for(s=i=0;i10;i++){

while(prime(n=rand()%100+1));

while(n%(m=rand()%(n/2+1)+2));

printf("请输入答案:\n%3d ÷%3d = ",n,m);

if(scanf("%d",w)==1 w==n/m){

printf("√\n");

s+=10;

}

else

printf("×\n");

}

printf("你得了%d分...\n",s);

return 0;

}