为了账号安全,请及时绑定邮箱和手机立即绑定

给Jackresult了返回值 之后再次调用 为什么输出顺序是不对的呢?

#include <stdio.h>
/* Jone算出结果应该怎么写函数? */
 int joneResult(int x, int y, int z)
{
   int sum = x+y+z;
   return sum/3;       //这里是不是应该将sum返回呢?
}
/* Jack没有算出结果只说了一句话是不是应该用无返回值函数? */
int jackResult(int x, int y, int z)
{
    printf("我算不出来\n");
    return 0;
}
int main()
{
    int a, b, c;
    a = 10;
    b = 20;
    c = 30;
    //Jone的返回值类型是什么?
   int jR = joneResult(a, b, c);
    printf("Jone运算结果是:%d\n", jR);
    //Jack没有算出结果只说了句话,是不是直接调用函数就可以了?
    printf("Jack的运算结果是:" ,jackResult(a,b,c));
    return 0;
}

output:


Jone的运算结果是:20

我算不出来

Jack的运算结果是:


这个输出结果为什么是  我算不出来 在前边呢???求大神解答。


正在回答

2 回答

printf函数内参数的运行顺序是从右到左的,也就是说会先调用jackResult函数,函数运行结果是我算不出来,然后再运行printf函数内左边的参数,Jack的运算结果是。

1 回复 有任何疑惑可以回复我~
#1

慕UI3152163 提问者

非常感谢!
2018-05-17 回复 有任何疑惑可以回复我~

首先jackresult只是打印一句话,是没有返回值的。应该定义成void,直接调用函数即可。而你设为int类型,返回值为0,但在最后的printf中调用函数是,少了%d。应该是printf("Jack的运算结果是:%d",jackResult(a,b,c));

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

给Jackresult了返回值 之后再次调用 为什么输出顺序是不对的呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信