#include <stdio.h>
#define RECTANGULAR 1
#define POLAR 2
int main(void)
{
int RECTANGULAR;
printf("%d %d\n", RECTANGULAR, POLAR);
return 0;
}
main函数中,定义变量名“RECTANGULAR”,和宏定义冲突了吧?
编译通不过!这不正是我想让你得出的结论嘛:)
承认错误其实是很伟大的事,可是很多老师似乎做不到。
3 6 7 5 3 5 6 2 9 1 2 7 0 9 3 6 0 6 2 6 我计算机生成的 20 个随机数和书中的完全一致,这是为什么呢?
把本节再看一遍就知道答案了
void print_random()如果改成void print_random(void)应该更好一些吧。
“ 承认错误其实是很伟大的事,可是很多老师似乎做不到。 atommann atommann@gmail.com http://www.atommann.com/ 2010-03-23 23:55:11 3 6 7 5 3 5 6 2 9 1 2 7 0 9 3 6 0 6 2 6 我计算机生成的 20 个随机数和书中的完全一致,这是为什么呢? ” 本来就是伪随机数,不是真正的随机数~~
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 100000
#define UPPER_BOUND 10
void count_random(int n, int upper_bound)
{
if ((n < 1) || (upper_bound < 1) || (upper_bound > n)){
printf("wrong input !\n");
exit(1);
}
int i;
int b[upper_bound];
for (i = 0; i < upper_bound; i++)
b[i] = 0;
srand((int)time(NULL));
for (i = 0; i < n; i++)
b[rand() % upper_bound]++;
printf("value\thow many\n");
for (i = 0; i < upper_bound; i++)
printf("%d\t%d\n", i, b[i]);
}
int main(void)
{
count_random(N, UPPER_BOUND);
return 0;
}
楼上的代码想说明什么? 只是绕个圈子吧?也没有产生正真的随机数吧?
上面的代码如果在两台系统时间一样的机器上同时编译执行,结果会一样吧! 如果两个人同时抛100000次色子,得到的结果一定不同吧! 可见上帝比人高明多了!也许我们抛色子得到的点数就是上帝用这个算法为我们设计好的。
如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!