Вычислить И Вывести На Экран В Виде Таблицы Значения Функции F На Инте

  • Автор темы zenya21
  • Дата начала
Z

zenya21

#1
Задание прикреплено. Программа работает не верно, в чем ошибка?
<!--shcode--><pre><code class='с'>#include <stdio.h>
#include <math.h>
main()
{

float a,b,c,F,xn,xk,dx,x;
printf("vvedite zna4eniya");
scanf("%f%f%f%f%f%f", &a,&b,&c,&xn,&xk,&dx);
int Fk,a1,b1,c1;
a1=(int)a;
b1=(int)b;
c1=(int)c;

printf("| x | F |\n");

for (x=xn; x<=xk; x+=dx)
{

if (x+5<0 && c==0)
{F=1/(x*a)-b;}
else
if (x+5>0 && c!=0) {F=(x-a)/x;}
else {F=(10*x)/(c-4);}


if ((a1|b1)&(a1|c1)!=0) {Fk=(int)F;
printf("| %f | %d |", x,Fk);}
else printf("| %f | %f |\n", x,F);
}
return 0;
}[/CODE]
 

Вложения

  • 44 КБ Просмотры: 10
R

rrrFer

#3
a1=(int)a;
b1=(int)b;
c1=(int)c;
это неправильно. Если вы записали в "а" значение "2", то там может оказаться 2 +(-) 0.00000...0001, у вас 1.999999 приведется к 1.

Если я введу c = 4 программа может упасть: else {F=(10*x)/(c-4);}
адекватного значения в F Точно не будет, деления на ноль может не произойти, т.к. c - дробное.
Аналогично при a или x равным нулю.

Отформатируйте нормально код, у вас я ничего понять не могу )

дробные числа так сравнивать нельзя