为什么函数返回会报错
本帖最后由 Ryan_Li 于 2020-4-10 19:35 编辑#include <stdio.h>
int max(int a , int b){
int ret;
if (a>b){
ret=a;
}
else {
ret=b;
}
return ret;
}
int main(){
int a , b , max;
printf("请输入要比较的值:");
scanf("%d %d",&a,&b);
max=max(a , b);
printf("较大的值是%d",max);
return 0;
}
报错 called object 'max' is not a function or function pointer 1,我要是没记错的话,void函数是什么都不返回的,你却给它有了返回值,要改成int才对
2,变量最好不要和函数同名,不然谁知道你要打印的是函数还是变量啊
#include <stdio.h>
int max(int, int);
int max(int a , int b){
int ret;
if (a>b){
ret=a;
}
else {
ret=b;
}
return ret;
}
int main(){
int a , b , max1;
printf("请输入要比较的值:");
scanf("%d %d",&a,&b);
max1=max(a,b);
printf("较大的值是%d",max1);
return 0;
} 把 max 函数名 改为 mmax 或 maxn 试试? 变量名不能是 max,因为有一个函数名字叫 max。改成这样就可以了:
#include <stdio.h>
int max(int a, int b)
{
int ret;
if (a > b)
{
ret = a;
}
else
{
ret = b;
}
return ret;
}
int main()
{
int a, b, m;
printf("请输入要比较的值:");
scanf("%d %d", &a, &b);
m = max(a, b);
printf("较大的值是%d", m);
return 0;
} 变量名与函数名重复 函数名的值是这个函数的地址,同时你又把它当成了一个int型变量,肯定报错啊
页:
[1]