Съезжает таблица в прогамме по вычислению функции

Съезжает таблица в прогамме по вычислению функции
Задали написать прогу которая решает функцию y=30/(sin(a*x)+x*x) в диапазоне х от -10 до 10 с шагом =1. Ввел условие, что знаменатель не равен 0, но при вводе значения а=4.712389 таблица съезжает. Подскажите что сделать?

#include "stdafx.h"
#include
#include
#include
#include
using namespace std;
double myfunc(double a, double x)
{
double y;
y=30/(sin(a*x)+x*x);
return y;
}

int _tmain(int argc, _TCHAR* argv[])
{
double x,y,a;
int n;
cout < < "a:";
cin >> a;
n=1;

{

printf ("--------------------------------------------------------n");
printf ("| N | a | x | y |n");
printf ("--------------------------------------------------------n");

for (x=-10; x< =10; x+=1)
{
if ((sin(a*x)+x*x)==0)
error
else
%2i
}

printf ("--------------------------------------------------------n");
}

return 0;
}

  • 1. Код не сюда, а на пастебин, сюда ссылку.
    2. Это как вы сравниваете синус и 0? Это сильно неверно, надо сравнивать fabs(sin(lalala)) < = 0.0001