Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Найдите ошибки


Автор: request 21.12.2009, 23:56
Для целого N и вещественного x вычислить S и P.
16 строка выводит полученные n и x, так вот x получается не тот, который был введен. (Всегда одно и то же значение.)
В конце S и P оказываются равны нулю, чего быть не должно.

Код

int main()
{
setlocale(LC_ALL, "Russian");
 
int i,n;
double x,s,p;
char str[20];
 
printf("\n\nВведите число N: ");
n = entcontrol(1, 100000);
 
printf("\nВведите число x: ");
fgets(str, 21, stdin);
x=atof(str);
 
printf("S=%d   P=%e", n,x);
 
s=1;
p=x;
for(i=1; i<=n; i++) {s=s/x; p=p*(x-i);};
printf("S=%d   P=%e", s,p);
 
getch();
 
return 0;
}

Автор: bsa 22.12.2009, 11:45

M
bsa
Отформатируй код, хотя бы по правилам описанным в Оформление кода.

Попробуй вместо велосипеда основанного на fgets()/atof() использовать scanf("%lf", &x).

Автор: request 22.12.2009, 16:27
теперь не работает только вот это:
Код

for (i=1; i<=n; i++) 
{
    s=s/x;
    p=p*(x-i);
}

переменные всегда 0.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)