下面C语言怎么错了!

来源:百度知道 编辑:UC知道 时间:2024/06/08 17:19:24
下面C语言怎么错了

1》int min(s[51],s[51]) ;提示为too many initializers
以及
2》调用函数min(s[51],s[51])提示为term does not evaluate to a function
;3》d=min(s[51],s[51]) ;提示为term does not evaluate to a function
4》int min( int s[51],int s[51]) 提示为redefinition

1) int min(s[51], s[51]);这一句,看起来像是函数声明。 首先, 正确的风格是应该采用函数原型。就是说要写清楚参数和返回值类型。你这里没写参数类型。 然后, 两个参数同名了。

2) min(s[51],s[51])这一句是调用么?假设min接受的参数类型是int[],你这里s[51]类型是什么? 是int 。所以这样的调用是通不过的。另外虽然语法上不是错误,但你这里给两个s显然是你自己理解错误

3) 跟上面同样的情况

4) 函数又定义了一次, 这次跟1)类似,但是少了一个错误(因为你毕竟写上参数类型了,有进步) 但是参数名照旧重复

说这些其实都没用,解决一两个错误对你来说毫无意义, 安心去看语法吧,要不就省下时间玩点别的去算了

int min(s[51],s[51])是什么意思

你是想声明min函数,传给它的两个参数是大小为51的数组吗?如果是这样就得像这样写

int s1[51],s2[51]; //假设你要的数组是int型
int min(s1,s2);

不知道 你是用什么 编译的
但是 编译工具 提示的那行错误,不一定 就是 那行错
有可能 那句的 前后 有错

这个在是有的时候min中的s[51]与s[51]会产生混乱

int min(int *s1,int *s2)

在同一个函数中运用两个同样的数组是不合适的,这会造成运用时混乱,使程序出错.没有具体的全过程,我看不明白你的程序是干麻用的,因此只能解释到此了!谅解!