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;
	}

basically what i'm trying to do is make the newton function accept two numbers, plug them through the equation f(x)/f'(x) and return a root. I then want prog.cpp to return that root

This article has been dead for over six months. Start a new discussion instead.