54黑科技 发表于 2019-10-29 14:39:36

发现一个求长方体体积的程序。请问还可以改进吗?

#include <stdio.h>

int s1,s2,s3;

int main()
{
        int bulk(int,int,int);

        int v,l,w,h;
        printf("Please input long and wide and high: ");
        scanf("%d,%d,%d",&l,&w,&h);
        v = bulk(l,w,h);
        printf("The volume is:%d\n",v);
        printf("s1 = %d,s2 = %d,s3 = %d\n",s1,s2,s3);
        return 0;
}

int bulk(int l,int w,int h)
{
        int v;
        s1 = l * h;
        s2 = w * h;
        s3 = l * w;
        v = l * w * h;
        return(v);
}

bin554385863 发表于 2019-10-29 15:34:25

本帖最后由 bin554385863 于 2019-10-29 15:56 编辑

一般情况下函数返回值只能有一个,如果要返回多个值,
要么返回一个数组,
要么返回一个结构体。
你的自定义函数返回值只有一个v,s1,s2,s3是无法返回的。

又或者不需要返回值,直接在自定义函数体内使用printf打印。

再或者使用指针*s1,*s2,*s3,再把指针作为函数的参数

54黑科技 发表于 2019-10-29 15:37:42

bin554385863 发表于 2019-10-29 15:34
一般情况下函数返回值只能有一个,如果要返回多个值,要么返回一个数组,要么返回一个结构体。你的自定义函 ...

我把s1,s2,s3定义为了全局变量

54黑科技 发表于 2019-10-29 15:39:08

bin554385863 发表于 2019-10-29 15:34
一般情况下函数返回值只能有一个,如果要返回多个值,要么返回一个数组,要么返回一个结构体。你的自定义函 ...

通过设为全局变量,然后如果在被调用函数中改变了,则也可以在主调函数中输出相应的值。

bin554385863 发表于 2019-10-29 15:52:36

54黑科技 发表于 2019-10-29 15:39
通过设为全局变量,然后如果在被调用函数中改变了,则也可以在主调函数中输出相应的值。

(⊙o⊙)?
我看下

bin554385863 发表于 2019-10-29 15:55:00

54黑科技 发表于 2019-10-29 15:39
通过设为全局变量,然后如果在被调用函数中改变了,则也可以在主调函数中输出相应的值。

了解了,这个知识点我还真没注意-_-||

bin554385863 发表于 2019-10-29 15:59:22

不过我很好奇为啥你不把函数声明放到main前面,或者直接在main前面定义函数
                                                            ——来自强迫症的疑问=_=

54黑科技 发表于 2019-10-29 16:37:39

bin554385863 发表于 2019-10-29 15:55
了解了,这个知识点我还真没注意-_-||

没关系,相互学习

54黑科技 发表于 2019-10-29 16:38:26

bin554385863 发表于 2019-10-29 15:59
不过我很好奇为啥你不把函数声明放到main前面,或者直接在main前面定义函数
                           ...

可能个人编程习惯不同吧

bin554385863 发表于 2019-10-29 17:26:43

54黑科技 发表于 2019-10-29 16:38
可能个人编程习惯不同吧

我刚开始学用的就是VScode,
每次写完代码,格式化一下,
{:10_285:}
可能时间长了就养成了写代码也是那种格式的习惯
页: [1]
查看完整版本: 发现一个求长方体体积的程序。请问还可以改进吗?