c语言-C语言中的rand()函数的问题

问题描述

C语言中的rand()函数的问题

代码如下,为什么a总是输出0,而b却能正常输出?rand()的返回值不是在0~RAND_MAX之间的整数吗?

#include <stdlib.h>

#include

int main (void)
{
int a;
int b;
int i;

for (i=0;i<5;i++)
{
    a=10*rand()/RAND_MAX;
    printf ("a=%dn",a);
}
for (i=0;i<5;i++)
{
    b=10.0*rand()/RAND_MAX;
    printf ("b=%dn",b);
}

}

解决方案

rand()%RAND_MAX 得到的才是0~RANDMAX之间的整数

时间: 2016-06-16

c语言-C语言中的rand()函数的问题的相关文章

编程c语言-CC语言中的main函数中的参数

问题描述 CC语言中的main函数中的参数 就是int argc char *argv[ ] 这个是什么意思,怎么样进行传参的,求大神指点迷津... 解决方案 C编译器允许main()函数没有参数,或者有两个参数(有些实现允许更多的参数,但这只是对标准的扩展).这两个参数,一个是int类型,一个是字符串类型.第一个参数是命令行中的字符串数.按照惯例(但不是必须的),这个int参数被称为argc(argument count).大家或许现在才明白这个形参为什么要取这么个奇怪的名字吧,呵呵!至于英文

c语言-C语言中的u2f函数在哪个库里面?

问题描述 C语言中的u2f函数在哪个库里面? 本人大二,在学计算机系统基础,有一道题要用u2f函数,但是不知道在哪个库里面, 不知道有谁了解? (u2f函数:将一个无符号整数表示的0/1序列作为float类型返回) 解决方案 自己做一个,下面认为 unsigned 和float 长度一致 比如 float u2f(unsigned u) { return * (float*)&u; } 或者 float u2f(unsigned u0) { union{ unsigned u; float f;

表达式-c语言中的printf函数问题

问题描述 c语言中的printf函数问题 int main() { int arry[3][5]={ {1,2,4}, {4,5,6,7}, {6,5,3,8} }; int (*p)[5]; p=arry; printf("%xn",*(p+1)+3); printf("%xn",*(*(p+1)+3)); printf("%xn",*(p+1)+3); printf("%xn",*(p+1)+2); printf(&quo

c语言中的system函数问题

问题描述 c语言中的system函数问题 在代码里面用system 函数 打开某一程序,结果导致打开这一程序后,下面的system函数用不了 . 请看图.......... 解决方案 求大神啊!!!!!!!!!!!!!!!!!!!! 解决方案二: system()函数功能强大,很多人用却对它的原理知之甚少先看linux版system函数的源码: #include <sys/types.h> #include <sys/wait.h> #include <errno.h>

有关于c语言中的getch函数

问题描述 有关于c语言中的getch函数 getch函数为什么对Ctrl或者alt之类的键没有反应??要想键盘随意按下一个键,就能进入程序,用什么函数?? 解决方案 getch是按键位分区来获取值的,就比如按下方向键会得到两个数,需要两次getch才能取完,如果有些按键是转意符,可以通过判断key键是否处于按下状态来确定. 解决方案二: getchar 函数名: getchar 功 能: 从stdio流中读字符 用 法: int getchar(void); 注解: getchar有一个int型

c语言-C语言中Free函数释放内存为何释放不了!!!!!!!

问题描述 C语言中Free函数释放内存为何释放不了!!!!!!! #include #include void testFree(char *par) { void*free(par); par = NULL; } int _tmain(int argc, _TCHAR* argv[]) { char path[10] = {"abc"}; char *str = (char *) malloc(100 *sizeof(char)); memset(str,0x00,100 *size

C语言中的strdup()函数和其与strcpy()函数的区别_C 语言

头文件: #include <string.h> 定义函数: char * strdup(const char *s); 函数说明:strdup()会先用maolloc()配置与参数s 字符串相同的空间大小,然后将参数s 字符串的内容复制到该内存地址,然后把该地址返回.该地址最后可以利用free()来释放. 返回值:返回一字符串指针,该指针指向复制后的新字符串地址.若返回NULL 表示内存不足. 范例 #include <string.h> main(){ char a[] = &

C语言中的pause()函数和alarm()函数以及sleep()函数_C 语言

C语言pause()函数:让进程暂停直到信号出现头文件: #include <unistd.h> 定义函数: int pause(void); 函数说明:pause()会令目前的进程暂停(进入睡眠状态), 直到被信号(signal)所中断. 返回值:只返回-1. 错误代码:EINTR 有信号到达中断了此函数. C语言alarm()函数:设置信号传送闹钟头文件: #include <unistd.h> 定义函数: unsigned int alarm(unsigned int sec

C语言中的fscanf()函数与vfscanf()函数使用_C 语言

C语言fscanf()函数:输入函数(比较常用)头文件: #include <stdio.h> 定义函数: int fscanf(FILE * stream, const char *format, ...); 函数说明:fscanf()会自参数stream 的文件流中读取字符串, 再根据参数format 字符串来转换并格式化数据.格式转换形式请参考scanf(). 转换后的结构存于对应的参数内. 返回值:成功则返回参数数目, 失败则返回-1, 错误原因存于errno 中. 范例 #inclu