本文目录一览:
- 1、C语言怎么实现随机分配?
- 2、输入一个数与c语言产生随机数相同则输出,不相同则失败
- 3、c语言 随机生成 10 个除法算式(被除数和除数都为 1-100 之间的整数,并且被除数能为除数整除)?
- 4、【正确给20分】c语言如何弄随机
C语言怎么实现随机分配?
srand(
(unsigned)time(
NULL
)
);
;
num=rand()%k;
用这个生成随机数你应该会吧
然后给6个长方形每个一个随机数,排序,然后将较大的2个一组,较小的2个一组,中间2个一组
也可以给每个方块一个0-2的随机数,同时在生成随机的时候加特判,如果对应数字的组里满了就重作随机
由于方块数少,不用太在乎算法时间复杂度
输入一个数与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语言 随机生成 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;
}
【正确给20分】c语言如何弄随机
我给你一个改过以后的代码得了,改了那些地方,以及改的原因,请参考注释:
#includeconio.h
#includestdio.h
#includestdlib.h //加上这个头文件,随机数库函数要用
#includetime.h //加上这个头文件,随机数库函数要用
main()
{
int a,i=2;
int num;
srand((unsigned)time(NULL)); //提供一个种子,这个就是生成随机数的一个固定步骤,记住就行了
num=rand()%101; //注意一下,你要生成的是number0-100,所以应该用生成的随机数除以101取余数
printf("press a number0-100,but you only have 3 chance\n");
scanf("%d",a);
while(a!=numi0) //将原来的11改成生成的随机数
{
if (anum) //将原来的11改成生成的随机数
{
printf("too big\n");
}
else
{
printf("too small\n");
}
scanf("%d",a);
i--;
}
if(a==num) //将原来的11改成生成的随机数
{
printf("right");
}
else
{
printf("you havn't chance");
}
getch();
}
上述代码已经在VC上编译运行确认了