【发布时间】:2017-12-11 03:05:30
【问题描述】:
我有这段代码,非常简单,当我从最新的 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]
我看到了一些线程,但我认为这是不同的。有人可以帮帮我吗?
【问题讨论】:
-
max(v,n)中传递的v是一个int数组,但max想要一个float数组。 -
所以 nooby :( 我怎么会错过呢?非常感谢。
-
您可能希望在
main中使用float v[10],因为您将float x分配给每个元素。 -
是的,我注意到了,谢谢。把你的答案写出来,我会尽可能标记它。 :) 现在它运行完美。
标签: c arrays function pointers vector