1. Another math question

I'm taking a different approach to my program after getting some input from some of the forum members.

My first question is if I want to display a result that can either be negative or positive, do I declare it as a float?

My next question is a problem with my code I believe...I'm getting a 0.00000 as a result. Could someone please take a look at my code and tell me why this is my result.

To explain my code n is the number of elements in the array, arrayx is the x values and arrayy is the y values in the array. Here is what the formula should do:

arrayy[i] * (x – arrayx[i])*(x – arrayx[i+1])*(x – arrayx[i+2]) and so on...

+ arrayy[i+1] * (x – arrayx[i])*(x – arrayx[i+1])*(x – arrayx[i+2]) and so on...

I want to set (x - arrayx[i]) = 1 in the first product and (x - arrayx[i+1] ) = 1 in the second product and so on...

I hope that I didn't confuse anyone in my explanation. Anyways, here's the code that I have so far and am wondering why it doesn't work??

Code:
```	int n=0;
int i=0;
double arrayx[12];
float arrayy[12];
float arraytop[12];
int x;
int j;

printf("Enter the x value you wish to interpolate: ");
scanf("%i", &x);

//Determine formula
for (i=0; i<=n-1; i++)
{

for (j=0; j<=n-1; j++)
{
if (arrayx[j] == arrayx[i])
{
arraytop[j] = 1;
}
arraytop[j] = x - arrayx[j];
//printf(" * (x - %i)", arrayx[j]);
}
arraytop[i] = arrayy[i] * arraytop[j];
}
//Display of top value of formula
printf("%f", arraytop[i]);```

2. I forgot to mention that this is only partially the code that I have. The value of 'n' is actually initialized. Sorry about that...I should have posted everything I guess.

3. My first question is if I want to display a result that can either be negative or positive, do I declare it as a float?
As long as you don't declare it as unsigned, an int, float, or double could display a result that can be either negative or positive. Use int when dealing with whole numbers only, use float when there can be decimals, and use double only when you need a lot of precision.