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

为什么这样编程不行?

#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 回答

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

#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;

}

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

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

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926212    人
  • 解答问题       20797    个

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

进入课程

为什么这样编程不行?

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