分页: 1 / 1

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

发表于 : 2009-09-08 22:18
YZMSQ
代码如下:
#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

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

发表于 : 2009-09-08 22:31
wangdu2002

代码: 全选

int main()
{int i;
randomize();
for(i=1;i<=20;i++)
printf("%d ",random(89)+10);
return 0;
}
错误不知,格式不对。 :em03

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

发表于 : 2009-09-08 22:39
cnkilior

代码: 全选

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


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

发表于 : 2009-09-09 15:42
YZMSQ
谢谢大家,不过我按诸位的意见修改后还是报“提供给函数random的实参太多”......... :em20 不知如何是好?

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

发表于 : 2009-09-09 15:59
懒蜗牛Gentoo
int main()
{int i;
randomize();
for(i=1;i<=20;i++)
printf("%d ",random()+10);
return 0;
}

这样也提示太多??

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

发表于 : 2009-09-09 16:40
YZMSQ
懒蜗牛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

求教中。。。。。

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

发表于 : 2009-09-09 17:00
懒蜗牛Gentoo
int main()
{int i;
randomize();
for(i=1;i<=20;i++)
printf("%f ",random()+10);
return 0;
}

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

发表于 : 2009-09-09 17:01
懒蜗牛Gentoo
哦,不对,那只是警告,应该是你编译的时候没有链接正确的库文件

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

发表于 : 2009-09-09 21:35
YZMSQ
懒蜗牛Gentoo 写了:哦,不对,那只是警告,应该是你编译的时候没有链接正确的库文件
何为“没有链接正确的库文件”?我的C学得不太好......哈..... :em06

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

发表于 : 2009-09-09 21:41
BigSnake.NET
懒蜗牛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));
...

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

发表于 : 2009-09-09 21:44
YZMSQ
linux 下的C 语言中的random函数究竟该如何使用?我现在搞不清楚了。 :em20

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

发表于 : 2009-09-09 21:47
BigSnake.NET
YZMSQ 写了:linux 下的C 语言中的random函数究竟该如何使用?我现在搞不清楚了。 :em20
三楼这么大个 RTFM 都不会看?
PS: linux 下的 C? 难道 windows 的 C 不是这样 =。= 。。

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

发表于 : 2009-09-09 22:00
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);
}

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

发表于 : 2009-09-11 15:33
LuciferStar
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++跨平台,可跨平台,并不是说搬过来就能用。

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

发表于 : 2009-09-11 17:00
YZMSQ
谢过了。。。。 :em01