C编程出错...."提供给函数random的实参太多"

软件和网站开发以及相关技术探讨
回复
头像
YZMSQ
帖子: 575
注册时间: 2009-06-01 10:48
来自: 杭州

C编程出错...."提供给函数random的实参太多"

#1

帖子 YZMSQ » 2009-09-08 22:18

代码如下:
#include <stdio.h>
#include <stdlib.h>
void main()
{int i;
randomize();
for(i=1;i<=20;i++)
printf("%d ",random(89)+10);
}
为什么会出现这个错误
“提供给函数random的实参太多”?
我是用Geany编的。
希望大家不吝赐教。谢谢。 :em06
Linux/Unix命令行手册:Unix Toolbox
一位坛友推荐的学习Linux/Unix的好书:传送门
A life without passion resembles the shadow from a grave.
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: C编程出错...."提供给函数random的实参太多"

#2

帖子 wangdu2002 » 2009-09-08 22:31

代码: 全选

int main()
{int i;
randomize();
for(i=1;i<=20;i++)
printf("%d ",random(89)+10);
return 0;
}
错误不知,格式不对。 :em03
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

Re: C编程出错...."提供给函数random的实参太多"

#3

帖子 cnkilior » 2009-09-08 22:39

代码: 全选

RANDOM(3)                  Linux Programmer's Manual                 RANDOM(3)

NAME
       random, srandom, initstate, setstate - random number generator

SYNOPSIS
       #include <stdlib.h>

       long int random(void);

       void srandom(unsigned int seed);

       char *initstate(unsigned int seed, char *state, size_t n);
       char *setstate(char *state);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       random(), srandom(), initstate(), setstate(): _SVID_SOURCE ||
       _BSD_SOURCE || _XOPEN_SOURCE >= 500

头像
YZMSQ
帖子: 575
注册时间: 2009-06-01 10:48
来自: 杭州

Re: C编程出错...."提供给函数random的实参太多"

#4

帖子 YZMSQ » 2009-09-09 15:42

谢谢大家,不过我按诸位的意见修改后还是报“提供给函数random的实参太多”......... :em20 不知如何是好?
Linux/Unix命令行手册:Unix Toolbox
一位坛友推荐的学习Linux/Unix的好书:传送门
A life without passion resembles the shadow from a grave.
头像
懒蜗牛Gentoo
论坛版主
帖子: 7362
注册时间: 2007-03-02 17:36
系统: Linux Mint

Re: C编程出错...."提供给函数random的实参太多"

#5

帖子 懒蜗牛Gentoo » 2009-09-09 15:59

int main()
{int i;
randomize();
for(i=1;i<=20;i++)
printf("%d ",random()+10);
return 0;
}

这样也提示太多??
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
头像
YZMSQ
帖子: 575
注册时间: 2009-06-01 10:48
来自: 杭州

Re: C编程出错...."提供给函数random的实参太多"

#6

帖子 YZMSQ » 2009-09-09 16:40

懒蜗牛Gentoo 写了:int main()
{int i;
randomize();
for(i=1;i<=20;i++)
printf("%d ",random()+10);
return 0;
}

这样也提示太多??
这样的话,在Geany下,编译可以成功,可以生成目标文件,但在点“生成”时却跳出

“gcc -Wall -o "4" "4.c" (在目录/home/justin/C语言中)
4.c: 在函数‘main’中:
4.c:26: 警告: 隐式声明函数‘randomize’
4.c:28: 警告: 格式‘%d’需要类型‘int’,但实参 2 的类型为‘long int’
编译失败
/tmp/ccUVT8su.o: In function `main':
4.c:(.text+0x12): undefined reference to `randomize'
collect2: ld 返回 1

求教中。。。。。
Linux/Unix命令行手册:Unix Toolbox
一位坛友推荐的学习Linux/Unix的好书:传送门
A life without passion resembles the shadow from a grave.
头像
懒蜗牛Gentoo
论坛版主
帖子: 7362
注册时间: 2007-03-02 17:36
系统: Linux Mint

Re: C编程出错...."提供给函数random的实参太多"

#7

帖子 懒蜗牛Gentoo » 2009-09-09 17:00

int main()
{int i;
randomize();
for(i=1;i<=20;i++)
printf("%f ",random()+10);
return 0;
}
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
头像
懒蜗牛Gentoo
论坛版主
帖子: 7362
注册时间: 2007-03-02 17:36
系统: Linux Mint

Re: C编程出错...."提供给函数random的实参太多"

#8

帖子 懒蜗牛Gentoo » 2009-09-09 17:01

哦,不对,那只是警告,应该是你编译的时候没有链接正确的库文件
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
头像
YZMSQ
帖子: 575
注册时间: 2009-06-01 10:48
来自: 杭州

Re: C编程出错...."提供给函数random的实参太多"

#9

帖子 YZMSQ » 2009-09-09 21:35

懒蜗牛Gentoo 写了:哦,不对,那只是警告,应该是你编译的时候没有链接正确的库文件
何为“没有链接正确的库文件”?我的C学得不太好......哈..... :em06
Linux/Unix命令行手册:Unix Toolbox
一位坛友推荐的学习Linux/Unix的好书:传送门
A life without passion resembles the shadow from a grave.
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: C编程出错...."提供给函数random的实参太多"

#10

帖子 BigSnake.NET » 2009-09-09 21:41

懒蜗牛Gentoo 写了:int main()
{int i;
randomize();
for(i=1;i<=20;i++)
printf("%d ",random()+10);
return 0;
}

这样也提示太多??
#include <stdlib.h>
#include <time.h>

srandom(time(0));
...
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
YZMSQ
帖子: 575
注册时间: 2009-06-01 10:48
来自: 杭州

Re: C编程出错...."提供给函数random的实参太多"

#11

帖子 YZMSQ » 2009-09-09 21:44

linux 下的C 语言中的random函数究竟该如何使用?我现在搞不清楚了。 :em20
Linux/Unix命令行手册:Unix Toolbox
一位坛友推荐的学习Linux/Unix的好书:传送门
A life without passion resembles the shadow from a grave.
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: C编程出错...."提供给函数random的实参太多"

#12

帖子 BigSnake.NET » 2009-09-09 21:47

YZMSQ 写了:linux 下的C 语言中的random函数究竟该如何使用?我现在搞不清楚了。 :em20
三楼这么大个 RTFM 都不会看?
PS: linux 下的 C? 难道 windows 的 C 不是这样 =。= 。。
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
YZMSQ
帖子: 575
注册时间: 2009-06-01 10:48
来自: 杭州

Re: C编程出错...."提供给函数random的实参太多"

#13

帖子 YZMSQ » 2009-09-09 22:00

不是这个意思, :em06 只是下面这段代码(也就是一楼的那个),是我从我们的C语言教程(《C语言程序设计》罗朝盛主编)上抄到这儿的,在wintc上可以通过,用gcc就不能通过了......
#include <stdio.h>
#include <stdlib.h>
void main()
{int i;
randomize();
for(i=1;i<=20;i++)
printf("%d ",random(89)+10);
}
Linux/Unix命令行手册:Unix Toolbox
一位坛友推荐的学习Linux/Unix的好书:传送门
A life without passion resembles the shadow from a grave.
LuciferStar
帖子: 146
注册时间: 2008-10-27 9:38

Re: C编程出错...."提供给函数random的实参太多"

#14

帖子 LuciferStar » 2009-09-11 15:33

YZMSQ 写了:不是这个意思, :em06 只是下面这段代码(也就是一楼的那个),是我从我们的C语言教程(《C语言程序设计》罗朝盛主编)上抄到这儿的,在wintc上可以通过,用gcc就不能通过了......
#include <stdio.h>
#include <stdlib.h>
void main()
{int i;
randomize();
for(i=1;i<=20;i++)
printf("%d ",random(89)+10);
}
书本上虽说C\C++跨平台,可跨平台,并不是说搬过来就能用。
头像
YZMSQ
帖子: 575
注册时间: 2009-06-01 10:48
来自: 杭州

Re: C编程出错...."提供给函数random的实参太多"

#15

帖子 YZMSQ » 2009-09-11 17:00

谢过了。。。。 :em01
Linux/Unix命令行手册:Unix Toolbox
一位坛友推荐的学习Linux/Unix的好书:传送门
A life without passion resembles the shadow from a grave.
回复