标题:奇怪的问题
取消只看楼主
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
 问题点数:0 回复次数:3 
奇怪的问题
//随机生成6位数
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main(void)
{
int n,number;
srand(time(0));
while(1)
{
puts("你想要多少个随机数?");
scanf("%d",&number);
for(n=0;n<number;n++)
printf("%d ",rand()&6+1);
putchar('\n');
}
return 0;
}
搜索更多相关主题的帖子: return number include 多少 void 
2006-11-27 17:46
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
得分:0 

这个for循环里的 printf("%d ",rand()&6+1);(将%误打为&),结果也能运行,随机数的范围为0-7,这是合法的C语句吗?


MSN:mr_zz@
QQ:284913258
计算机及应用专业
2006-11-27 17:55
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
得分:0 
没人回?顶一下。

MSN:mr_zz@
QQ:284913258
计算机及应用专业
2006-11-27 20:26
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
得分:0 
以下是引用csight在2006-11-27 20:12:00的发言:
printf("%d ",rand()&6+1);
我觉得这里 & 是表示把rand()产生的数(我也不知道它产生的范围是多少?)和6做一下“与”而已;
不可否认这样是可以的,而范围也不超过7,但意义和rand()%6+1完全不同了。

和6做一下“与”是什么意思,我刚学C很多命令还没学全。。


MSN:mr_zz@
QQ:284913258
计算机及应用专业
2006-11-27 21:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-105714-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.711203 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved