为什么输出结果会是这样的呢?
#include <stdio.h>
#include <stdlib.h>
int print_ab()
{
int numb, absolute;
printf("请输入一个整数:");
scanf("%d", &numb);
if(numb > 0)absolute = numb;
else absolute = - numb;
printf("%d的绝对值是:%d\n", numb, absolute);
system("pause");
return 0;
}
int main()
{
print_ab();
}
加编译参数 -fexec-charset=gbk
代码没问题,考虑IDE、编码或者系统问题
【以下回答由 GPT 生成】
解决方案
这个问题出现的原因是因为print_ab()
函数没有正确地返回计算结果。在C语言中,函数的返回类型为int
时,必须要在函数体内使用return
语句返回一个整数值,否则返回值是不确定的。
要解决这个问题,只需在print_ab()
函数的末尾添加return
语句即可。
以下是修改后的代码:
#include <stdio.h>
#include <stdlib.h>
int print_ab()
{
int numb, absolute;
printf("请输入一个整数:");
scanf("%d", &numb);
if(numb > 0)
absolute = numb;
else
absolute = -numb;
printf("%d的绝对值是:%d\n", numb, absolute);
system("pause");
return absolute; // 返回计算结果
}
int main()
{
int result = print_ab(); // 主函数接收返回值
return 0;
}
现在,print_ab()
函数会正确地返回计算结果,并在主函数中处理返回值。
希望这个解决方案对你有帮助!如果还有其他问题,请随时向我提问。
【相关推荐】