嘿 我制作了这个可以执行毕达哥拉斯定理的程序。 每次我尝试使其循环时,我都会收到错误消息,说明嵌套函数已被禁用。 你们其中一个人能告诉我如何使这个程序循环。感谢。
这是该计划:
#include <stdio.h>
float function (float x, float y);
float function2 (float x, float z);
float function3 (float y, float z);
float main()
{
float x;
float y;
float z;
{
printf("---------------------------------------------------------------");
getchar();
printf("Welcome to right triangle side length calculator");
getchar();
printf("If you do not know the legth of the side, enter 0");
getchar();
printf("Please insert length of the first leg: ");
scanf("%f", &x);
printf("Please insert length of the second leg: ");
scanf("%f", &y);
printf("Please insert length of the hypotenuse: ");
scanf("%f", &z);
}
{
if (z==0){
printf("The length of the hypotenuse is %f\n", function (x, y));}
else if (y==0){
printf("The length of the second leg is %f\n", function2(x, z));}
else if (x==0){
printf("The length of the first leg is %f\n", function3(y, z));}
}
printf(" - A Laszlo Solutions Program -\n");
printf("---------------------------------------------------------------");
getchar();
}
float function(float x, float y) {
return(sqrt(((x*x)+(y*y))));
}
float function2(float x, float z) {
return(sqrt(((z*z)-(x*x))));
}
float function3(float y, float z){
return(sqrt(((z*z)-(y*y))));
}
答案 0 :(得分:1)
您需要将function1
,function2
和function3
的定义移到main
之外。
(你的代码不包含循环,嵌套或其他。我想知道你是否误解了“循环”这个词,它指的是重复执行相同的代码。)
答案 1 :(得分:1)
您的代码中存在一些问题
1。返回主要
的类型float main()
{
return 0.0; //missing return statement
}
2. 检查大括号
float main()
{
{
//some statements
}
{
//some statements
}
}
3。不必要的功能
float function1(float x, float y)
{
return(sqrt(((x*x)+(y*y)))); // since, three functions are doing same
// You can use only a function
}