Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Ввод данных в С

Автор: willhunting 13.11.2007 1:37

Никак не могу ввести данные. После первого ввода одной переменной виснет. Результат, естественно, тоже не выдаёт. При вводе данных типа х=а; y=b… всё работает.
Среда Dev-C++.

Код

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int   main()
{    
double alfa,rezult,B,x,y,m,shag;
printf("vvedite koordinatu po osi Y=\n");
scanf(" %f ", &y);

printf("vvedite shag pristrelki\n");
scanf("%f", &shag);  
printf("vvedite tocnosti pribligeniya\n");
scanf("%f", &alfa);

printf("vvedite tochku cherez kotoruy dolzgno proiti reshenie X=\n");
scanf(" %f", &x);


m=0;

m=m+shag;
rezult=x*x+m*x+1-y;
while((fabs(rezult)>alfa) || (m>2))
{
m=m+shag;
rezult=x*x+m*x+1-y;
}
if (m>2) printf("tocnosti ne dostignuta vvedite drugoi shag/n");


else

printf("m=%f\n",m);
system("pause");


return 0;
}

Автор: volvo 13.11.2007 2:33

Цитата
Никак не могу ввести данные.
Естественно... Формат ввода какой задал?

scanf(" %f ", &y);
, то есть, перед числом, и после числа - пробел??? blink.gif Пробелы из форматной строки убери - все заработает (я про ввод чисел).

Автор: willhunting 13.11.2007 3:35

Цитата(volvo @ 12.11.2007 22:33) *

Естественно... Формат ввода какой задал?

scanf(" %f ", &y);
, то есть, перед числом, и после числа - пробел??? blink.gif Пробелы из форматной строки убери - все заработает (я про ввод чисел).

Пробелы убрал. Спасибо. Только решение так и не выдаёт. При вводе же переменных так
Код

x=1;
y=3;
alfa=0.0001;
shag=0.01;

всё прекрасно работает(выдаёт верный ответ).

Автор: volvo 13.11.2007 3:43

Хм... Ну да... Ты же вводишь double, а форматная строка - для float...

scanf("%lf", &y);
и так далее...

Автор: willhunting 13.11.2007 3:49

Цитата(volvo @ 12.11.2007 23:43) *

Хм... Ну да... Ты же вводишь double, а форматная строка - для float...

scanf("%lf", &y);
и так далее...

Спасибо большое. Работает.