产生无限循环的基本函数

Basic Function Producing Infinite Loop

这是我的代码:

#include <stdio.h>
#include <math.h>
int main(void) 
{
    double x, y, z;
    double numerator;
    double denominator;
    printf("This program will solve (x^2+y^2)/(x/y)^3\n");
    printf("Enter the value for x:\n");
    scanf("%lf", x);
    printf("Enter the value for y:\n");
    scanf("%lf", y);
    numerator = sqrt(x) + sqrt(y);
    denominator = pow((x/y),3);
    z = (numerator/denominator);
    printf("The solution is: %f\n", z);
    return(0);

}

任何人都可以给我一个(希望)快速指示来修复我的无限循环吗?

您的函数中没有循环,所以我认为是您对 scanf() 的调用导致了错误:

您需要传递对 scanf() 的引用,即使用 scanf("%lf",&x) 而不是 scanf("%lf",x)

顺便说一句,根据您的函数定义,您应该使用 pow(x,2) 而不是 sqrt(x),后者 returns 平方根。

因为这是你的第一个问题

**Welcome to stack overflow**

您的代码没有进入无限循环,存在运行时错误。 你的 scanf 代码有缺陷使用这个:

scanf("%lf",&x); 
scanf("%lf",&y);

您希望 scanf 修改您 value.Please 阅读教程的地址字段中包含的值。

也用

numerator=pow(x,2) + pow(y,2);//numerator=x^2+y^2

这不是无限循环,您的代码只是 returns 无限。那是因为 scanf() 需要一个指向变量的指针,它应该把读取的数字放在哪里。要获取变量的地址,您可以使用 & 运算符,如下所示:

scanf("%lf", &x);
scanf("%lf", &y);