为什么这样编程不行?

来源:5-5 函数的返回值

慕移动6346340

2017-08-12 20:31

#include <stdio.h>

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

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

{

   int sum = x+y+z;

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

}

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

void jackResult(int x, int y, int z)

{

    printf("我算不出来\n");

    return;

}

int main()

{

    int a, b, c;

    a = 10;

    b = 20;

    c = 30;

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

    printf("Jone运算结果是:%d\n", joneResult(a,b,c));

    printf("Jack运算结果是:%s\n",jackResult(a,b,c));

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

    return 0;

}


写回答 关注

2回答

  • treehuang
    2017-08-12 21:36:03

    如果你想写一个返回字符串的函数,你可以参考下面这个例子

    #include <stdio.h>

    #include <stdlib.h>

    char *A(void)

    {

        char *a = malloc(10);        //创建堆空间,大小为10个字节,并且指向char型指针a

        a = "hello";                       //这里的指针a存放的是字符串hello的头个字母的地址

        return a;                            返回一个char *a;

    }

    inrt main(void)

    {

        char *a = A();                //定义char *a,接收函数A的返回值

        printf("%s\n", a);            //打印字符串

        return0;

    }

  • treehuang
    2017-08-12 21:26:03

    jackResult(int x, int y, int z)是一个无返回值的函数,所以是不能这样写的,你这样写是想让它返回字符串,但是实际上无返回,这个函数只是执行printf这个I/O函数而已,因此,不能这么编哦

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926024 学习 · 20793 问题

查看课程

相似问题