注册 登录
编程论坛 C图形专区

关于得到随机数字的一点疑惑

xuesuyu 发布于 2006-09-20 13:26, 782 次点击
这是我写的:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void main()
{int i,j;
srand(time(0));
for(i=0;i<10;i++)
{j=rand()%11;
printf("%d",j);
}
printf("\n");
getch();
}
这是别人写的
#include<time.h>
#include<stdlib.h>
main()
{
int i,j;
srand((int)time(0));
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf(" %d ",j);
}
}
我自己写的我能理解 但是下面写的东西我就不太明白了 但是我运行了 也能输出随机数字
有2个(int)是什么意思呢??还有下面红色的那句是什么意思呢??明白的能讲下么??

[此贴子已经被作者于2006-9-20 13:29:49编辑过]

3 回复
#2
一笔苍穹2006-09-20 17:34
楼主另一篇关于键盘的帖子我也看了,楼主似乎提及到了了解了C的关键字和一些函数了,但总觉得还是没学进去。
再看到这篇帖子,我可能明白楼主为何没学进去的部分原因,那就是对C语言并未全面深入的了解,而并不是因为没学汇编,比方说(int),这在每一本学习C语言的书中都会在非常靠前的篇幅中讲到:即强制类型转换
大都C语言在一开始就会先讲C的变量,讲变量必讲变量类型,讲类型就肯定会讲到类型转换,比如(int)time(0),就是将函数time(0)的长整型long返回值转换为整型int,然后将这个int型的值作为参数传递给srand()函数。
而后面那个(int)则是将其后浮点型运算结果转换为整型,与整数1相加之后交赋给整型变量j。
所以说打好基础才能向更高的层次进步,建议楼主多看两篇C课本,多写点代码,你会发现每看一次都会有所悟,每写一行都会有所得。
祝楼主学C大成!
#3
xuesuyu2006-09-20 18:55

谢谢~~~~~~~~!!!!!!!!!!
太谢谢了!!十分感谢斑竹给提的建议~~!!
有个人说过 你学到的东西就好象一个圆的面积 而你不知道的东西就是圆外的面积 所以说 你学的东西越多 就越感到自己无知。。。
我现在是越来越有这种感觉了~~再次谢谢斑竹给我提的建议
我会努力的~

#4
一笔苍穹2006-09-21 13:33
呵呵,大家一起加油吧!!
1