分页: 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编的。
希望大家不吝赐教。谢谢。

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;
}
错误不知,格式不对。

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的实参太多”.........

不知如何是好?
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学得不太好......哈.....

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函数究竟该如何使用?我现在搞不清楚了。

Re: C编程出错...."提供给函数random的实参太多"
发表于 : 2009-09-09 21:47
由 BigSnake.NET
YZMSQ 写了:linux 下的C 语言中的random函数究竟该如何使用?我现在搞不清楚了。

三楼这么大个 RTFM 都不会看?
PS: linux 下的 C? 难道 windows 的 C 不是这样 =。= 。。
Re: C编程出错...."提供给函数random的实参太多"
发表于 : 2009-09-09 22:00
由 YZMSQ
不是这个意思,

只是下面这段代码(也就是一楼的那个),是我从我们的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 写了:不是这个意思,

只是下面这段代码(也就是一楼的那个),是我从我们的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
谢过了。。。。
