产生无限循环的基本函数
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);
这是我的代码:
#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);