Написах набор от кодове, които сканират стойности и ги използват, за да тестват централната гранична теорема. Въпреки това, когато стартирам програмата си, след като въведа всички стойности с помощта на 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)
? - person Crowman   schedule 19.02.2014printf("are we here yet\n");
. Ако това не работи, публикувайте целия си код или най-малката му версия, която можете да направите, която ще покаже това поведение. - person Crowman   schedule 19.02.2014printf
. Препоръчвам да се научите да използвате дебъгера, с който идва вашата IDE. Ако не използвате IDE, тогава все още има самостоятелни дебъгери (като gdb) и наистина трябва да обмислите използването на добра IDE, ако можете. - person Nicu Stiurca   schedule 19.02.2014times
int
ли е? Иматеscanf("%f", ×);
, което очаква указател къмfloat
. - person Joseph Quinsey   schedule 19.02.2014