如何将float数组和float作为参数传递给C中的函数

时间:2016-11-08 21:54:13

标签: c arrays function parameters arguments

我正在尝试将2个参数(浮点数和浮点数组)发送到C中的函数。

我收到此错误:

test.c:10:1: error: conflicting types for ‘result’
 result(float *array, float number){
 ^
test.c:10:1: note: an argument type that has a default promotion can’t match an empty parameter name list declaration
test.c:7:5: note: previous implicit declaration of ‘result’ was here
     result(array, number);

我的代码是:

#include <stdio.h>
#include <math.h>

main()
{
    float array[3] = {1.5, 2.6, 3.7};
    float number = 2.3;
    result(array, number);
}

result(float *array, float number)
{
    printf("number: %f\n", number);
    printf("array 1: %f\n", array[1]);
}

我是C的新手并且知道在其他语言中这会有用,所以对此处的任何帮助都会非常感激!

2 个答案:

答案 0 :(得分:3)

代码是这样的:`

#include <stdio.h>
#include <math.h>

void result(float array[3], float number){
    printf("number: %f\n", number);
    printf("array 1: %f\n", array[1]);
}

main(){
    float array[3] = {1.5, 2.6, 3.7};
    float number = 2.3;
    result(array, number);
}

`

答案 1 :(得分:2)

您无法在没有原型的情况下访问main之后声明的函数。像这样重写你的代码:

#include <stdio.h>
#include <math.h>

int result(float *, float);

int main()
{
    /* ... */
}

int result(float *array, float number)
{
    /* ... */
}