编译器一直报这个错,没找到到底错哪,大神请指导xia
[Warning] passing argument 1 of 'FindMax' makes pointer from integer without a cast
#include <stdio.h>
#define N 10
int FindMin(int b[],int n);
int FindMin(int b[],int n);
int main(){
int b[N];
int max,min,i,sum;
for(i=0;i<N;i++){
scanf("%d",&b[i]);
}
max=FindMax(b[N],N);
min=FindMin(b[N],N);
sum=max+min;
printf("sum=%3d",sum);
return 0;
}
int FindMax(int b[],int n){
int i,max;
max=a[0];
for(i=1;i<n;i++){
if(a[i] > max)
max=a[i];
}
return max;
}
int FindMin(int b[],int n){
int j,min;
min=a[0];
for(j=1;j<n;j++){
if(a[j] < min)
min=a[j];
}
return min;
}
这不是错误,只是一个警告,如果不想看到这个警告,可以修改代码
int FindMax(int b[],int n){
->
int FindMax(int * b,int n){
别的类似
FindMax这个函数第一个参数定义为int数组,实际调用需要传入数组地址,你代码传入的是b[N],表示数组第N+1个元素,是个int值,
所以会报警告,代码编译会强制把这个int值转成地址,代码逻辑肯定有问题,另外数组初始化N个元素,访问到了N+1,越界是个问题,
还有函数里面变量没出现过怎么用啊 感觉好多问题。
是不是存在对子母大小写的错误和书写的规范性问题?
警告而已,我可能类型不对