这似乎是一个相对常见的问题,但其他帖子并未指出我应该做什么的正确方向。我很难看到这段代码不起作用。
#include <stdio.h>
#include <math.h>
int main(){
double x,y,z;
double t = (x*x + y*y + z*z);
double s = sqrt(t);
printf("Component x: ");
scanf("%f, x");
printf("Component y: ");
scanf("%f, y");
printf("Component z: ");
scanf("%f, z");
printf("Magnitude: %f, s");
return 0;
}
答案 0 :(得分:0)
你是segfaulting因为scanf的类型和变量都是双引号所以没有什么可读的。此外,对于double,“%f”应更改为“%lf”。
scanf("%f, x");
这应该是
scanf("%lf", &x);
在读取z的值后,还要移动t和s计算语句。
..
printf("Component z: ");
scanf("%lf", &z);
double t = (x*x + y*y + z*z);
double s = sqrt(t);
printf("Magnitude: %lf" , s);
..