我目前正在开发一个代码,使用函数计算方形区域和圆形区域。我想掌握使用功能,这是我学习的最佳方式。
这是我的代码,我想知道我是否正确调用另一个函数中的函数。 (我在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;
}
答案 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);
将半径和长度的值传递给函数,然后使用相同的东西覆盖它的函数级副本有什么意义?