【发布时间】:2014-03-19 05:03:36
【问题描述】:
我编写了一组代码,用于扫描值并使用它们来测试中心极限定理。但是,当我在使用 scanf 输入所有值后运行程序时,我的程序不会继续执行下一行代码:问题如下所示:
printf("*** DEMONSTRATION OF CENTRAL LIMIT THEOREM ***");
printf("Enter parameters for the distribution [a b] ==> ");
scanf("%f %f",&a,&b);
printf("Enter distribution to display [1=data, 2=mean] ==> ");
scanf("%d",&option);
printf("Enter number in each group ==> ");
scanf("%d",&group);
printf("Enter number of samples of groups ==> ");
scanf("%f",×);
printf("are we here yet");
在这些 printf 和 scanf 之后,程序开始进行计算。但是当我编译(成功)后运行程序时。看来我的代码在 scanf("%f",×);
“我们还在这里吗”这一行永远不会被打印出来,这意味着程序没有通过 scanf。我没有做过太多的 C 编程,这对我来说似乎真的很奇怪,有人能弄清楚为什么程序没有执行 scanf("%f",×);我真的很喜欢它
【问题讨论】:
-
printf()通话后会发生什么?你确定这不仅仅是因为你没有在它的末尾添加'\n',或者打电话给fflush(stdout)吗? -
在 printf() 之后我有一个 if 语句检查 option 的输入值,如果 option 为 1,它会通过一系列算法尝试通过纯数据显示中心极限定理,如果 option==2 它通过数据的平均值显示中心极限定理。但问题是在 scanf 之后什么都没有显示
-
当我运行程序时,它会变成这样 输入分布参数 [ab] ==> 0.2 0.7 输入分布以显示 [1=data, 2=mean] ==> 2 输入数字在每组中 ==> 10 输入组的样本数 ==> 100
-
尝试更改为
printf("are we here yet\n");。如果这不起作用,请发布您的整个代码,或您可以制作的最小版本,以显示此行为。 -
是的,在我添加 \n 之后,它会打印出下一行我们是否在这里,所以不是 scanf 的问题,而是我的代码中的其他问题导致问题