如何在C编程中调用另一个函数中的函数

时间:2016-04-10 17:53:06

标签: c

我目前正在开发一个代码,使用函数计算方形区域和圆形区域。我想掌握使用功能,这是我学习的最佳方式。

这是我的代码,我想知道我是否正确调用另一个函数中的函数。 (我在ASQUARE函数中使用了Get_Length函数,在ACIRCLE函数中使用了Get_Radius函数。)

#include <stdio.h>
#include <stdlib.h>
int Get_Radius(int R);
int Get_Length(int L);
float ACIRCLE(int R,float A);
float ASQUARE(int L,float B);
int main(){
    int R,L;
    float A,Area,SArea,B;
    R=Get_Radius(R);
    L=Get_Length(L);
    Area=ACIRCLE(R,A);
    SArea=ASQUARE(L,B);

    system("pause");
    return 0;
}


int Get_Radius(int R)
{
    printf("Input the Radius of a circle:\n");
    scanf("%d",&R);
    return R;
}
int Get_Length(int L)
{
    printf("Input the Length of the square:\n");
    scanf("%d",L);
    return L;
}

float ACIRCLE(int R,float A) 
{
    R=Get_Radius(R);
    A=R*R*3.14;
    return A;
}
float ASQUARE(int L,float B)
{
    L=Get_Length(L);
    B=L*L;
    return B;
}

4 个答案:

答案 0 :(得分:0)

scanf("%d",L);是代码中的问题,请改用scanf("%d", &L);;

答案 1 :(得分:0)

这对我来说不会失败或挂起。可能是您没有使用Windows操作系统,或者您使用的是最新的操作系统,而不是我的系统不再支持系统(&#34;暂停&#34;);基于这篇文章:

system("pause"); - Why is it wrong?

它挂在哪里?是请求信息还是立即挂起?你也要求半径和长度两次,这有点奇怪。

答案 2 :(得分:0)

它可能会崩溃,因为在scanf函数中你忘了'&amp;'。

它应该是,   scanf(“%d”,&amp; L);

这就是为什么这不起作用的原因。 顺便说一下,你的函数用于扫描输入,所以它不需要参数,在()中。 您没有理由发送参数,只返回输入。

最后但并非最不重要的是, 这是非常基本的东西,不应该在这个网站上询问, 你可以很容易地谷歌。

答案 3 :(得分:0)

你对这些功能本身所做的事情是正确的,但你有一些冗余......

R=Get_Radius(R);
L=Get_Length(L);
Area=ACIRCLE(R,A);
SArea=ASQUARE(L,B);

将半径和长度的值传递给函数,然后使用相同的东西覆盖它的函数级副本有什么意义?