Chinaunix

标题: rand()函数怎么会得到这样的结果? [打印本页]

作者: net_xiaobao    时间: 2005-10-31 16:06
标题: rand()函数怎么会得到这样的结果?
大家看看这个程序,我在调用rand()函数得到一个随机数,但有个问题,
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   int i,j;
   printf("please enter interger:");
   scanf("%d",&j);
   for(i=0;i<=j;++i)
   {
      if(i%6==0)
      printf("n");
      printf("%12d",rand());
    }
   printf("n");
   return (0);
}
得到这样一个结果:
please enter interger:11

  1804289383   846930886  1681692777  1714636915  1957747793   424238335
   719885386  1649760492   596516649  1189641421  1025202362  1350490027
但用printf("%12d",rand());应该得到一个int型的,数字不应该这么大啊,不知道为什么
作者: Yarco    时间: 2005-10-31 16:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: redog    时间: 2005-10-31 16:29
linux 下的int类型现在都是4字节了 :)
作者: snow888    时间: 2005-10-31 16:41
与机器和编译器有关.

比较一下 short,int,long 看看
作者: POLOGG    时间: 2005-10-31 17:05
现在的int都是4个字节了!
作者: sickcat2004    时间: 2005-10-31 17:11
int 和long 在32bit 下都是 4byte
没有经过论证
作者: net_xiaobao    时间: 2005-10-31 17:18
明白了,那以前的int 是2个字节吗?这与编译器有关吗?我用的是gcc3.2
作者: 中国管理员    时间: 2005-10-31 19:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: diogin    时间: 2005-10-31 21:53
int main(void)
{
    printf("%d %d %d", sizeof(short), sizeof(int), sizeof(long);
    return 0;
}




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2