作业帮 > 综合 > 作业

C语言高手进 函数的这章我老看不懂 我是自学 谁有什么诀窍 还有下面这个程序为什么改了就不对了

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 20:00:20
C语言高手进 函数的这章我老看不懂 我是自学 谁有什么诀窍 还有下面这个程序为什么改了就不对了
#include
void main()
{
int max(int x,int y);
int a,b,c;
scanf("%d%d",&a,&b);
c=max(a,b);
printf("max is %d",c);
}
int max(int x,int y)
{
int z;
z=x>y?x:y;
return(z);
}
为什么程序改成运行的时候无法得到正确答案?
#include
void main()
{
int max(int x,int y);
int a,b,c;
scanf("%d%d",&a,&b);
max(a,b);
printf("max is %d",max);
}
int max(int x,int y)
{
int z;
z=x>y?x:y;
return(z);
}
你的程序问题主要出在以下两行
max(a,b);
printf("max is %d",max);
其中
max(a,b);将会计算a和b之间比较大的值并作为调用结果返回
printf("max is %d",max);会将max的值转为int型数值打印出来
但是写法有误,printf("max is %d",max)里的第二个max只是函数的名字,它代表的是这个函数的指针,而不是它的返回值
正确的写法可以有以下两种
#include "stdafx.h"
#include
void main()
{
int max(int x,int y);
int a,b,c;
scanf("%d%d",&a,&b);
int m = max(a,b);
printf("max is %d",m);
}
int max(int x,int y)
{
int z;
z=x>y?x:y;
return(z);
}
或者
#include "stdafx.h"
#include
void main()
{
int max(int x,int y);
int a,b,c;
scanf("%d%d",&a,&b);
printf("max is %d",max(a,b));
}
int max(int x,int y)
{
int z;
z=x>y?x:y;
return(z);
}
关于函数使用的说明,你可以参考我的另一个帖子
里面有简单的说明,希望对你有用