中易网

帮我调试下C语言下的函数调用下的代码,不太明白

答案:4  悬赏:80  
解决时间 2021-03-15 15:16
#include <stdio.h>
#include<conio.h>
int sum(int x,int y)
{ int z;
z=x+y;
printf("z=%d",z);
return z;
}

main()
{
int a,b,s;
char m,n;

scanf("%d,%d",a,b);
s=sum(a,b);

}
结果只能输入数字,之后就不能干啥了,没有把结果给说报出来,难道是函数调用写错了还是?
scanf("%d,%d",&a,&b);这个不算哦,为什么没返回值了?
最佳答案
首先,我不知道你申请char m,n是做什么用的,所以这一句删掉了。
其次,scanf函数应该这样写:scanf("%d,%d",&a,&b);但这样写的话,你输入两个数字之间必须输入一个逗号。
建议写成scanf("%d%d",&a,&b); 这样的话,两个数字之间输入空格就可以了

修改后的代码如下:
#include <stdio.h>
#include<conio.h>
int sum(int x,int y)
{ int z;
z=x+y;
printf("z=%d",z);
return 0;
}

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

}
加上&是因为scanf需要知道参数a,b的地址。&a表示的就是a的地址,同理b也是

补充:lz的追问意思是不是我为什么把sum函数的代码改成return 0?
如果是这个意思,那我回答你:return表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码,-1代表异常,0代表正常)。
因为你需要输出的结果已经在函数里打印出来了。其实return z的真正作用可以在如下的代码中表示出来,可以这样:
#include <stdio.h>
#include<conio.h>
int sum(int x,int y)
{ int z;
z=x+y;
return z;
}

main()
{
int a,b,s;
scanf("%d,%d",&a,&b);
s=sum(a,b);
printf("s=%d",s);
}
这段代码必须有 return z;,因为是在main函数里输出,需要函数返回值来给s赋值。
全部回答
是运行之后程序退出了,所以你看不到显示结果。 main() { int a,b,s; char m,n; scanf("%d,%d",a,b); s=sum(a,b); scanf("%d",a);//加上这句就能看到结果了 }
你那个sanf函数中变量a和变量b前面要加上&,其次是你输入的时候两个数字中间要加入逗号,如楼上所述,人家说的很详细
scanf("%d,%d",a,b); 看"%d,%d"。 你输入时应按照 “数字,数字” 格式输入。 估计你是 “数字 数字” 格式输入的吧。 如果你要是按第二种格式输入的话应将scanf中的,去掉
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在word上点击插入时间和日期是不是也算插入了
暗夜精灵小德的幻化有那些比较性感 易刷的
圆形智能手表
克莉丝汀021-412我想知道这个在什么地方
什么样的企业需要交税?
成为书法家,必须要念专业书法大学吗,
笔记本电脑win10,一开机就在登陆界面,但输
“矜持不苟”是什么意思?
我是2011届湖北考生,美术联考考了199,但是
你能帮我搜下我爱荧光的藏头诗嘛[图片]
花蝴蝶吃什么
剑网3什么奶好?
全自动洗衣机有没有什么地方可以关掉不给别人
尤溪县洋中镇龙洋村卫生室我想知道这个在什么
全国有哪些著名的养殖场呀???
推荐资讯
请问各位高人:开淘宝客和淘宝店能用一个账号
正常营业后还能入开办费科目吗?
忍者印记暗杀凯利下士那关怎么玩
什么万能钥破解密码好,求高手
龙达体育用品商店地址在什么地方,想过去办事
北京大专有护理专业的学校都有哪些啊,打算学
如果税后29000那么税前多少
葫芦侠悬浮窗打开后,进入游戏悬浮窗自动消失
河南财经政法大学能报考公务员吗
五华县晓兴实业有限公司在什么地方啊,我要过
请问下邵阳到回龙寺镇的路现在有没有修好?
amd770主板现在能兼容的cpu还有哪些?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?