【发布时间】:2013-12-18 12:11:27
【问题描述】:
我正在为作业编写输入部分,如果命令行输入是一个它应该接受键盘输入 - 其中一个输入不起作用。
这是我遇到问题的代码段。如果行 scanf("%lf %lf", &r1, &r2);不理会它会产生分段错误-如果将其更改为写入另一个变量,则一切正常。我很难理解为什么是那个变量导致了问题,它实际上是从上面的行粘贴的,我将四个字符从 k 更改为 r 并且这两个变量在同一行中声明!请尽快提供帮助,在解决此问题之前,我无能为力。我已经尝试将变量名称更改为 l1 和 l2,但是当功能障碍线与功能线如此相似时,我想不出还有什么可做的
double time[10000], x1[10000], x2[10000], v1[10000], v2[10000];
double m1, m2, k1, k2, r1, r2, w1, w2;
int count, inmethod;
time[0] = 0;
x1[0] = 0; x2[0] = 10;
v1[0] = 0; v2[0] = 0;
m1 = 5; m2 = 5;
k1 = 5; k2 = 5;
r1 = 5; r2 = 10;
w1 = 0; w2 = 0;
sscanf(argv[1], "%d", &inmethod);
// printf("%d \n", inmethod);
if((argc == 2) && ((inmethod == 1) || (inmethod == 0)))
{
}
else
{
printf("enter 1 for file input or 0 to enter input via the keyboard. you will be able to save your input for future use.\n");
return(EXIT_FAILURE);
}
if(inmethod == 1)
{
printf("system properties: \n");
printf("please enter m1 then m2, seperated by a space and followed by enter\n");
scanf("%lf %lf", &m1, &m2);
printf("please enter k1 then k2, seperated by a space and followed by enter \n");
scanf("%lf %lf", &k1, &k2);
printf("please enter r1 then r2, seperated by a space and followed by enter \n");
scanf("%lf %lf", &r1, &r2);
printf("please enter w1 then w2, seperated by a space and followed by enter \n");
scanf("%lf %lf", &w1, &w2);
printf("initial conditions: \n");
printf("please enter x1[0] then x2[0], seperated by a space and followed by enter \n");
scanf("%lf %lf", &x1[0], &x2[0]);
printf("please enter v1[0] then v2[0], seperated by a space and followed by enter \n");
scanf("%lf %lf", &v1[0], &v2[0]);
}
【问题讨论】:
标签: c segmentation-fault scanf