问答详情
源自:5-5 函数的返回值

jackResult(a,b,c);(24行)为什么不放在(22行)jack的printf里

jackResult(a,b,c);为什么不放在jack的printf里

提问者:叫我熊二 2017-06-11 00:23

个回答

  • 原初的火
    2017-08-06 22:38:02

    还有我用char不加*的话(在cb上),直接停止运行了

  • a白大哥
    2017-07-15 16:30:33

    jackResult(a,b,c); 对于这个函数的内容只是输出一串字符串并没有返回任何一个参数,因此无法像你说的放入第22行进行调用,如果你想直接放入22行的话需要修改一些东西。代码如下(输出结果和要求一至,但这道题不会给你通过,因为没有用void,╮(╯▽╰)╭):

    #include <stdio.h>

    /* Jone算出结果应该怎么写函数? */

     int  joneResult(int x, int y, int z)

    {

       int sum = x+y+z;

       return sum/3;        //这里是不是应该将sum返回呢?

    }

    /* Jack没有算出结果只说了一句话是不是应该用无返回值函数? */

     char* jackResult(int x, int y, int z)      //用 char* 作为返回值类型,也就是char型数组

    {

        return "我算不出来";           //返回的字符串

    }

    int main()

    {

        int a, b, c;

        a = 10;

        b = 20;

        c = 30;

        //Jone的返回值类型是什么?

         int    jR = joneResult(a, b, c); 

        printf("Jone运算结果是:%d\n", jR);

        printf("Jack运算结果是:%s",jackResult(a,b,c));        //用%s来输出字符串

        //Jack没有算出结果只说了句话,是不是直接调用函数就可以了?

        return 0;

    }


  • 凌锋LTS
    2017-06-11 10:00:18

    //22行的代码中的printf函数只是为了输出 "Jack运算结果是:" 这个字符串。

    //当22行输出完 "Jack运算结果是:" 之后,才到24行的调用 jackResult(a,b,c) 来输出Jack 的结果。