I'm trying to create a function that uses loops to determine the roots of an equation using the Newton-Raphson method. I have my Newton function set up to take the input from my main prog, calculate the roots, and then return them back into the main prog. Somewhere along the lines something is going wrong. When I input my negative and positive values, I receive my first line of output "Call Newton<given guess> saves root and returns function" but then the program stops. I'm not sure if this is a problem with my loop, my Newton function, or with my program calling the Newton function. here is my code
Main program
#include "head.h"
int main(void)
{
double guess, root; //variables needed for Newton.
char choice = 81; // 81 is decimal code for capital Q; 113 is lower case q
int enterkey, i;
do {
cout << "\nmenu displayed: Enter A for 6.a., B for 3., or Q to quit ";
cout << "\nFor example, type B for Exercise 3 followed by Enter key ";
choice = toupper(getchar( )); enterkey = getchar( );
cout << choice <<":"<< enterkey << endl;
switch (choice) // a decision structure to select only one case out of many
{
case 'A':
for(i=1;i<=2;i++)
{
cout<<"Enter a negative followed by a positive "<<endl;
cin>>guess;
cout<<"Call Newton(given guess), returns and saves root\n";
cout<<"After Newton the root is "<<Newton(guess)<<endl;
}//end for
cout<<"After the loop i is "<<i<<endl;
break;
default:
if (choice != 'Q')
{cout << "\nIncorrect Choice: Enter (A,B, or Q as valid)\n";
}//endif
} // end switch
} while (choice != 'Q'); //end do-while
cout << " Fini\n";
system("pause");
return 0;
and here is my Newton function
double guess, xi,root;
int i;
double Newton(double guess)
{
for (i=1,10;1;)
{
xi=guess;
(xi)=(xi-(3*pow(xi,2)+2*xi-2)/(6*xi+2));
}//end for
root =xi;
cout<<"in Newton\n";
return root;
}