C语言如何调用函数

小弟自学,搞不懂如何调用有参数的函数,请看下面这个程序,是错的#include<stdio.h>intsum(intx,inty){intz;z=x+y;printf("... 小弟自学,搞不懂如何调用有参数的函数,请看下面这个程序 ,是错的

#include <stdio.h>
int sum(int x,int y)
{ int z;
z=x+y;
printf("z=",z);
return z;
}

main()
{
int a,b,s;
scanf("%d,%d",a,b);
s=sum(a,b);
getch();
}

请教各位,我的问题到底出在哪里?多谢了!

还有我就想问一下,形参,实参到底是指什么?举例子就行了,其实书上有解释,小弟愚笨,不理解
有个问题大家还没发现,就是scanf我没写&,编译居然能通过,faint
但即使这样,程序仍然有问题,任意输入2个整数,显示结果是"z="就什么都没有了
展开
 我来答
彩虹糖豆Sx
高粉答主

2018-10-06 · 醉心答题,欢迎关注
知道小有建树答主
回答量:458
采纳率:97%
帮助的人:12.3万
展开全部

C语言中,函数调用的一般形式为:

函数名(实际参数表)

对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。

#include<stdio.h>
int fun(int x, int y); // 函数声明,如果函数写在被调用处之前,可以不用声明
void main()
{
int a=1, b=2, c;
c = fun(a, b); // 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值
}
// 自定义函数fun
int fun(int x, int y)  // 函数首部
{  // {}中的语言为函数体
return x>y ? x : y;  // 返回x和y中较大的一个数
}

扩展资料

C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。

这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。这与其它语言的子程序嵌套的情形是类似的。其关系可表示如图。 

图表示了两层嵌套的情形。其执行过程是:执行main函数中调用a函数的语句时,即转去执行a函数,在a函数中调用b 函数时,又转去执行b函数,b函数执行完毕返回a函数的断点继续执行,a函数执行完毕返回main函数的断点继续执行。

参考资料:函数调用_百度百科

天云小店
2015-05-19 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:754万
展开全部

C语言调用函数就是先定义并声明函数,之后再根据定义函数的格式调用。


下面举例来说明函数调用方法:

#include<stdio.h>
int fun(int x, int y); // 函数声明,如果函数写在被调用处之前,可以不用声明
void main()
{
    int a=1, b=2, c;
    c = fun(a, b); // 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值
}
// 自定义函数fun
int fun(int x, int y)  // 函数首部
{  // {}中的语言为函数体
    return x>y ? x : y;  // 返回x和y中较大的一个数
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9520938134
2020-02-19 · TA获得超过4655个赞
知道小有建树答主
回答量:1803
采纳率:77%
帮助的人:376万
展开全部
#include <stdio.h>
int sum(int x,int y) //声明一个sum函数
{ int z;
z=x+y; //z,x,y在这里就是形式参数,
return z; //z是形式参数,输出的应该是实际参数s,而非z
}

main()
{
int a,b,s; //a,b,s就是实际参数
scanf("%d,%d",&a,&b); //输入时不要忘记 取地址符&
s=sum(a,b);
printf("s=%d",s); /*putchar的功能是向屏幕输出一个字符。其调用格式为putchar(ch);ch为输出项,可以使字符型的常量、变量或表达式*/
return 0;
}
我在您的源程序基础上做了一定修改,并在关键位置给予了注释。如果对您有帮助,请采纳我的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lllyf123
2006-03-22 · TA获得超过3.8万个赞
知道大有可为答主
回答量:8680
采纳率:40%
帮助的人:9289万
展开全部
少一个头函数,住函数没有返回值,应该用void。
#include <stdio.h>
#include<conio.h>
int sum(int x,int y)
{ int z;
z=x+y;
printf("z=",z);
return z;
}

void main()
{
int a,b,s;
scanf("%d,%d",a,b);
s=sum(a,b);
getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e97373148
2006-03-22 · 超过60用户采纳过TA的回答
知道小有建树答主
回答量:258
采纳率:0%
帮助的人:178万
展开全部
你这个编译是成功的.
在函数体内的是实参或是说参加运算的为实参.
形参就是在函数体外的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(16)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式