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

Тема в разделе "Общие вопросы по С и С++", создана пользователем zenya21, 30 окт 2012.

  1. zenya21

    zenya21 Гость

    Задание прикреплено. Программа работает не верно, в чем ошибка?
    <!--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]
     

    Вложения:

    • 123.doc
      Размер файла:
      44 КБ
      Просмотров:
      10
  2. zenya21

    zenya21 Гость

    Разобрался
     
  3. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    это неправильно. Если вы записали в "а" значение "2", то там может оказаться 2 +(-) 0.00000...0001, у вас 1.999999 приведется к 1.

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

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

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

Поделиться этой страницей