C/C++

Помргите по C++

Посчитать z и y. В первой программе
использовать для ввода функцию scanf, для вывода – функцию printf. Во второй
программе использовать операторы потокового ввода-вывода cin и cout.
Определить разность между значениями y и z. В программе предусмотреть ввод
исходных данных с экрана дисплея.
// первая программа
#include <stdio.h>
#include <math.h>
double y(double b)
{
return sqrt(2.0*b+2.0*sqrt(b*b-4.0)) / (sqrt(b*b-4.0)+b+2.0);
}
double z(double b)
{
return 1.0/sqrt(b+2.0);
}
int main()
{
double b;
printf("Введите b: ");
scanf("%lf",&b);
/* проверка допустимых значений */
if(b*b-4.0 < 0.0)
{
perror("Неверное значение для b.");
return 1;
}
else if(2.0*b+2.0*sqrt(b*b-4.0) < 0.0)
{
perror("Неверное значение для b.");
return 1;
}
else if(sqrt(b*b-4.0)+b+2.0 == 0.0)
{
perror("Неверное значение для b.");
return 1;
}
else if(b+2.0 <= 0.0)
{
perror("Неверное значение для b.");
return 1;
}
printf("y(b)=%lf z(b)=%lf\n",y(b),z(b));
printf("Разность между y и z равна %lf.\n",y(b)-z(b));
return 0;
}

// вторая программа
#include <iostream>
#include <cmath>
using namespace std;
double y(double b)
{
return sqrt(2.0*b+2.0*sqrt(b*b-4.0)) / (sqrt(b*b-4.0)+b+2.0);
}
double z(double b)
{
return 1.0/sqrt(b+2.0);
}
int main()
{
double b;
cout<<"Введите b: ";
cin>>b;
/* проверка допустимых значений */
if(b*b-4.0 < 0.0)
{
cerr<<"Неверное значение для b."<<endl;
return 1;
}
else if(2.0*b+2.0*sqrt(b*b-4.0) < 0.0)
{
cerr<<"Неверное значение для b."<<endl;
return 1;
}
else if(sqrt(b*b-4.0)+b+2.0 == 0.0)
{
cerr<<"Неверное значение для b."<<endl;
return 1;
}
else if(b+2.0 <= 0.0)
{
cerr<<"Неверное значение для b."<<endl;
return 1;
}
cout<<"y(b)="<<y(b)<<" z(b)="<<z(b)<<endl;
cout<<"Разность между y и z равна "<<y(b)-z(b)<<endl;
return 0;
}
АH
Артем House
94 334
Лучший ответ
Артем House У меня разницы между z и y не получается. Она равна нулю. Кроме случаев неправильного округления double.
Лучше иди сюда
ru.stackoverflow.com
Тут тебе помогут быстрее и лучше
Виктор Юсупов сам-то зачем сюда пришёл?
быстрее и качественнее пошлют?)