十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
将运算符存储到一个字符数组中,然后,按数组元素个数生成随机数,根据随机数从数组中获得相应的运算符号。
武进ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
实现方法:
建立数组 char a[],并初始化,将运算符存储其中
设置随机种子 srand(time(NULL));
获得数组中元素个数,n=sizeof(a)/sizeof(a[0]) ;
生成0-n的随机数 i=rand()%n
根据随机数,从数组中取得运算符,输出a[i]
参考代码:
直接产生随机的字符串的库函数是没有的,
但是可以这么实现:
1.产生固定长度的随机的字符串
主要就是产生固定个数的随机字符,
那么就简单了,用两组随机数:
一组:随机产生0~25的整数num,然后用'a'+num来赋值小写字母,'A'+num来赋值大写字母
一组:随机产生0,1,产生0,用'a'来和num相加,生成小写字母;产生1,用'A'来和num相加,生成大写字母;
2.产生不固定长度的随机的字符串
就是在上面的产生固定长度的随机的字符串的基础上,在引入一组随机数,来控制字符串长度
代码如下:
1.产生固定长度的随机的字符串
#includeconio.h
#includestdio.h
#includestdlib.h
#includetime.h
#define N 10//固定长度为10
void main()
{
int flag,charLengt;
int i,j,k=0;
char ch[N+1]={NULL};
srand((unsigned)time(NULL));
for(i=0;i10;i++)//生成10个String吧
{
for(j=0;jN;j++)
{
flag=rand()%2;
if(flag) ch[k++]='A'+rand()%26;
else ch[k++]='a'+rand()%26;
}
ch[k]='\0';
k=0;
printf("%s\n",ch);
}
getch();
}
不定长的自己参照着写吧
逐句注释如下:
char ch,cal[4]={'+','-','*','/'};
定义一个字符变量ch和一个字符数组acl[4]
srand(time(NULL));
初始化随机数种子
for(i=0;i10;i++)
{
a=rand()%10+1;
//rand()函数生成0到32767之间的一个随机整数,用这个整数除以10,求余数,再加上1,产生的结果就是1到10之间的一个随机整数,赋值给变量a
ch=cal[rand()%4];
//通过生成0到3之间的随机整数,来定位取出随机的运算符,赋值给字符变量ch
b=rand()%10+1;
//生成1到10之间的一个随机整数,赋值给变量b
printf("%d%c%d=",a,ch,b);
//显示生成的运算式
switch(ch)//后面的代码就是根据运算符计算结果。
没有明白你的本意是什么,做了一个,你看看吧,不对接着追问
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main()
{
int a;
srand((unsigned)time( NULL ));
a=rand()%1000;
printf("随机数%0d\n",a);
}
随机输出一个字符串,其实就是要随机生成一个字符串并输出。
要实现这一点,可以通过rand函数来实现。
具体示例代码如下:
#include stdio.h
#include stdlib.h
#include time.h
#define STR_LEN 10//定义随机输出的字符串长度。
#define CHAR_MIN 'a'
#define CHAR_MAX 'z' //定义输出随机字符串每个字符的最大最小值。
int main()
{
char str[STR_LEN + 1] = {0};
int i;
srand(time(NULL));//通过时间函数设置随机数种子,使得每次运行结果随机。
for(i = 0; i STR_LEN; i ++)
{
str[i] = rand()%(CHAR_MAX-CHAR_MIN + 1) + CHAR_MIN; //生成要求范围内的随机数。
}
printf("%s\n", str);//输出生成的随机数。
return 0;
}
以上代码实现了随机生成一个长度为10,全部字符均为小写英文字符的字符串并输出。
核心语句为str[i] = rand()%(CHAR_MAX-CHAR_MIN + 1) + CHAR_MIN;
其中,
rand()获取一个随机数,
rand()%(CHAR_MAX-CHAR_MIN + 1)使结果位于[0, CHAR_MAX-CHAR_MIN]之内。这里利用了模除的特性。
这样最终的结果就是位于[CHAR_MIN, CHAR_MAX]之间的字符了,从而实现控制生成随机数据范围的效果。
rand()生成的结果是一个整数,如果想得到字符(字母),则需要控制得到的数据在'a' - 'z'的ascii值之间的数据,给你一个生成大写字母的
int getRandChar()
{
int ch;
srand(time(NULL));
ch=rand()%26; //生成0-25的值
ch += 'A' ; //可得到一个随机字母
return ch ;
}