无法理解为什么我的代码中出现Segmentation fault(core dumped)

时间:2017-02-15 23:50:34

标签: c

这似乎是一个相对常见的问题,但其他帖子并未指出我应该做什么的正确方向。我很难看到这段代码不起作用。

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

1 个答案:

答案 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);
..