#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);这个不算哦,为什么没返回值了?
帮我调试下C语言下的函数调用下的代码,不太明白
答案:4 悬赏:80
解决时间 2021-03-15 15:16
- 提问者网友:长安小才冯
- 2021-03-15 08:46
最佳答案
- 二级知识专家网友:错过的是遗憾
- 2021-03-15 10:03
首先,我不知道你申请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赋值。
其次,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赋值。
全部回答
- 1楼网友:兮沫♡晨曦
- 2021-03-15 12:38
是运行之后程序退出了,所以你看不到显示结果。
main()
{
int a,b,s;
char m,n;
scanf("%d,%d",a,b);
s=sum(a,b);
scanf("%d",a);//加上这句就能看到结果了
}
- 2楼网友:萌萌哒小可爱
- 2021-03-15 12:22
你那个sanf函数中变量a和变量b前面要加上&,其次是你输入的时候两个数字中间要加入逗号,如楼上所述,人家说的很详细
- 3楼网友:放肆的依賴
- 2021-03-15 11:09
scanf("%d,%d",a,b);
看"%d,%d"。
你输入时应按照 “数字,数字” 格式输入。
估计你是 “数字 数字” 格式输入的吧。
如果你要是按第二种格式输入的话应将scanf中的,去掉
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯