我如何循环我的毕达哥拉斯定理程序?

时间:2011-03-21 01:39:43

标签: c loops

嘿 我制作了这个可以执行毕达哥拉斯定理的程序。 每次我尝试使其循环时,我都会收到错误消息,说明嵌套函数已被禁用。 你们其中一个人能告诉我如何使这个程序循环。感谢。

这是该计划:

#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))));

    }

2 个答案:

答案 0 :(得分:1)

您需要将function1function2function3的定义移到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
}