c - 从不兼容的指针类型传递参数1

时间:2017-07-06 23:13:48

标签: c arrays function pointers vector

我有这个代码,非常简单,当我从最新的printf调用它时,它给了我函数max()的错误:

#include <stdio.h>

float max(float v[], int n){
  float maxim = v[0];
  for(int i = 0; i < n; i++){
    if(maxim < v[i]){
      maxim = v[i];
    }
  }
  return maxim;
}

void main(){
  int v[10], n;
  float x;

  for(int i = 0; i < 10; i++){
    printf("Introduza %d de 10 números: ", i+1);
    scanf(" %f", &x);
    v[i] = x;
  }

  printf("Indique o número de elementos que pretende avaliar: ");
  scanf(" %d", &n);

  printf("O maior valor introduzido entre os %d primeiros números foi %f", n, max(v,n));
}

文字是葡萄牙语,但这并不重要。 错误:

warning: passing argument 1 of ‘max’ from incompatible pointer type [-Wincompatible-pointer-types]

我看到了一些线索,但我认为这是不同的。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

v中传递的max(v,n)int数组,但max需要float数组。

float v[10]中还需要main,因为您要为每个元素分配float x

但我会使用double,除非您有充分理由说明必须使用float

除此之外:请注意main应为

int main(void)

答案 1 :(得分:0)

改变这个:

cp -r data/data/com.nintendo.zaba/files/assets/USEN/Message/* /storage/emulated/0/FireEmblem/Message 
cp -r data/data/com.nintendo.zaba/files/assets/USEN/UI/* /storage/emulated/0/FireEmblem/UI 
cp -r data/data/com.nintendo.zaba/files/assets/Common/UI/* /storage/emulated/0/FireEmblem/GoToCommon/UI 
cp -r data/data/com.nintendo.zaba/files/assets/Common/UI_Animation/* /storage/emulated/0/FireEmblem/GoToCommon/UI_Animation 

要:

void main(){
  int v[10], n;
  float x;