首页 新闻 会员 周边 捐助

C语言如何随机的产生事先已经指定的若干个对象?

0
悬赏园豆:50 [已解决问题] 解决于 2015-10-24 11:56

C语言中,要如何随机的产生事先指定的若干个对象中的一个?

如:我事先指定了“大小前后左右”这六个字,如何随机的从他们之中抽出一个?

我要做个计算器,随机产生加减乘除的运算,如何随机生成加减乘除中的一种运算方法?

朱华建的主页 朱华建 | 初学一级 | 园豆:157
提问于:2015-10-24 00:30
< >
分享
最佳答案
0

你可以先将加减乘除放在一个数组,通过rand()产生一个随机数作为下标即可实现你要的功能了

收获园豆:50
期待生命中的她 | 菜鸟二级 |园豆:252 | 2015-10-24 01:11

你能给我代码的模组吗?非常感谢

朱华建 | 园豆:157 (初学一级) | 2015-10-24 07:53

@嗯保护你: 

#include<stdio.h>
#include<time.h>
#include<windows.h>

int main()
{
srand((unsigned)time(NULL));
int a=10,b=5,c,d;
c=rand()%4;//产生0-3的随机数
printf("c=%d\r\n",c);
if(c==0)
{
d=a+b;
printf("d=a+b=%d\r\n",d);
}
else if(c==1)
{
d=a-b;
printf("d=a-b=%d\r\n",d);
}
else if(c==2)
{
d=a*b;
printf("d=a*b=%d\r\n",d);
}
else
{
d=a/b;
printf("d=a/b=%d\r\n",d);
}
return 0;
}

这是个相队来说简单实现点的算法,没用到数组,下面这个用到数组的

#include<stdio.h>
#include<time.h>
#include<windows.h>

int main()
{
srand((unsigned)time(NULL));
int a=10,b=5,c,d;
char suanfa[]={'+','-','*','/'};
c=rand()%4;//产生0-3的随机数
printf("c=%d\r\n",c);
switch(suanfa[c])
{
case '+':
d=a+b;
printf("d=a+b=%d\r\n",d);
break;
case '-':
d=a-b;
printf("d=a-b=%d\r\n",d);
break;
case '*':
d=a*b;
printf("d=a*b=%d\r\n",d);
break;
case '/':
d=a/b;
printf("d=a/b=%d\r\n",d);
break;
default:
break;
}
return 0;
}

期待生命中的她 | 园豆:252 (菜鸟二级) | 2015-10-24 10:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册