鱼C论坛

 找回密码
 立即注册
查看: 1501|回复: 10

[已解决]C语言函数调用

[复制链接]
发表于 2018-12-2 15:38:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 saberAMD 于 2018-12-2 15:41 编辑

#include <stdio.h>

main()
{
        float realr;
        float m,z;
        float getM(float r);
        float getZ(float r);
        scanf("%f",&realr);
        m=getM(float r);
        z=getZ(float r);
        printf("%f,%f",m,z);
}

float getM(float r)
{
        float r;
        m=3.14*r*r;
        return m;
       
}
float getZ(float r)
{
        float r;
        z=2*3.14*r;
        return z;
}
我这个怎么不对呢
最佳答案
2018-12-2 16:09:54
#include <stdio.h>
#include <stdlib.h>
double getM(double r)
{
        double m = 0;
        m = 3.14*r*r;
        return m;

}
double getZ(double r)
{
        double z = 0;
        z = 2 * 3.14*r;
        return z;
}

int main()
{
        double realr = 0;
        double m = 0, z = 0;
        printf("请输入圆的半径:");
        scanf_s("%lf", &realr);
        m = getM(realr);
        z = getZ(realr);
        printf("%lf\n%lf\n", m, z);
        system("pause");
        return 0;
}


你这要这样写才对吧,你上面写的有好多错误:
一个是没有声明函数,函数要么写在前面要么先声明一下,后面再写,还有就是函数里面m和z都是没有定义的变量。
2.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-2 16:09:54 | 显示全部楼层    本楼为最佳答案   
#include <stdio.h>
#include <stdlib.h>
double getM(double r)
{
        double m = 0;
        m = 3.14*r*r;
        return m;

}
double getZ(double r)
{
        double z = 0;
        z = 2 * 3.14*r;
        return z;
}

int main()
{
        double realr = 0;
        double m = 0, z = 0;
        printf("请输入圆的半径:");
        scanf_s("%lf", &realr);
        m = getM(realr);
        z = getZ(realr);
        printf("%lf\n%lf\n", m, z);
        system("pause");
        return 0;
}


你这要这样写才对吧,你上面写的有好多错误:
一个是没有声明函数,函数要么写在前面要么先声明一下,后面再写,还有就是函数里面m和z都是没有定义的变量。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-2 16:10:57 | 显示全部楼层
倚楼听雨落 发表于 2018-12-2 16:09
#include
#include
double getM(double r)

不知道说的对不对,反正我感觉是这些问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-2 16:15:27 | 显示全部楼层
手动修改
#include <stdio.h>
float getM(float r);//函数声明放在main()主函数之前,函数定义可以写后面也可以和定义一起
float getZ(float r);
main()
{
        float realr;
        float m,z;
        
        scanf("%f",&realr);
        m=getM(realr);//传的是已经定义的参数
        z=getZ(realr);
        printf("%f,%f",m,z);
}

float getM(float r)
{
        float m=3.14*r*r;//r是传参,m未定义,所以定义m就可以
        return m;
        
}
float getZ(float r)
{
        float z=2*3.14*r;
        return z;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-12-2 16:15:47 | 显示全部楼层
倚楼听雨落 发表于 2018-12-2 16:09
#include
#include
double getM(double r)

Configuration: cc - Win32 Debug--------------------
Linking...
c.obj : error LNK2001: unresolved external symbol _scanf_s
Debug/cc.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

cc.exe - 2 error(s), 0 warning(s)
报了两个错误  ,初学C语言 不怎么会
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-2 16:18:54 | 显示全部楼层
本帖最后由 倚楼听雨落 于 2018-12-2 16:21 编辑
saberAMD 发表于 2018-12-2 16:15
Configuration: cc - Win32 Debug--------------------
Linking...
c.obj : error LNK2001: unresolved ...


你用的是什么编译器?你把scanf_s,改成scanf

另外一个报错的没看明白。。。,我是在VS2015下编译运行的,没有问题,不知道你用的是哪个编译器。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-2 16:19:45 | 显示全部楼层
倚楼听雨落 发表于 2018-12-2 16:18
你用的是什么编译器?你把scanf_s,改成scanf

vc++
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-2 16:26:05 | 显示全部楼层

https://fishc.com.cn/thread-121313-1-1.html
虽然没用过那个但是好多人都说那个软件好老了而且不支持C99,我个人觉得Windows下面用Visual Studio 2015更好用吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-2 16:30:46 | 显示全部楼层
倚楼听雨落 发表于 2018-12-2 16:26
https://fishc.com.cn/thread-121313-1-1.html
虽然没用过那个但是好多人都说那个软件好老了而且不支持C ...

学校教学用的是这个 我就只有跟着用了      确实不怎么好用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-2 16:36:17 | 显示全部楼层
saberAMD 发表于 2018-12-2 16:30
学校教学用的是这个 我就只有跟着用了      确实不怎么好用

可以试试Visual Studio 2015,功能强大,最重要的是也是免费的,注册一个微软账号就好了,你那个主函数不要偷懒,最好写成int main()。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-2 17:42:38 | 显示全部楼层
倚楼听雨落 发表于 2018-12-2 16:36
可以试试Visual Studio 2015,功能强大,最重要的是也是免费的,注册一个微软账号就好了,你那个主函数不 ...

好的 谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-3 00:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表