I don't get what is happening here. I used this exact code for another algorithm and it works but here i only get large negative numbers for an input, what gives?

My output is:
floatArray[0] is -107374176.000000
floatArray[1] is -107374176.000000
floatArray[2] is -107374176.000000
floatArray[3] is -107374176.000000
floatArray[4] is -107374176.000000
floatArray[5] is -107374176.000000
floatArray[0] is -107374176.000000
floatArray[1] is -107374176.000000
floatArray[2] is -107374176.000000
floatArray[3] is -107374176.000000
floatArray[4] is -107374176.000000
floatArray[5] is -107374176.000000

``````int main(int argc, char *argv[])
{
/* Extract value for # of elements in array */
int d;
sscanf (argv[2], "%d", &d);

/* Create Input and Output Streams */
ifstream fin;
ofstream fout;

/* Open Input Stream */
fin.open("numlist.dat");

/* Tests to ensure files opened */
if(fin.fail())
{
cerr << "Input did not open\n";
exit(2);
}

/* Construct New Array */
float *floatArray= new float[d];

/* Put numbers from list into array */
float item;
// printf("Put Numbers from list into array\n");
for (j=0; j<d;j++)
{
fin >> item;
// printf("item is %f\n", item);
floatArray[j]=item;
printf("floatArray[%d] is %f\n", j, floatArray[j]);
}

/* Call to HEapSort */
HeapSort(floatArray, len);

/* Display Array After Sort */
for (j=0; j<d;j++)
{
printf("floatArray[%d] is %f\n", j, floatArray[j]);
}
/* Close file for Reading */
fin.close();

/* Open Output Stream */
fout.open("numlist.dat.srt");

/* Tests to ensure files opened */
if(fout.fail())
{
cerr << "Input did not open\n";
exit(2);
}

/* Write Output */
for (i=0;i<d;i++)
{
fout << floatArray[i] << endl;
}
/* Close File */
fout.close();

getchar();
}``````
2
Contributors
1
Don't forget to `delete []floatArray;`