hi.

i have to do addition,multiplication,division and substraction of large numbers using c++.

Using pointers and struct .I m sending some code.plz if anyone can do this program help me.

here r some code
plz send me on fri_003@yahoo.co.in
as soon as possible.

#include<stdio.h>

struct node
{
	long int data;
	struct node* llink;
	struct node* rlink;

	node()
	{
		data=0;
		llink = NULL;
		rlink = NULL;
	}

};


struct head
{

	int noofdigit;
	char sign;
	struct node* left;
	struct node* right;


	head()
	{
		noofdigit = 0;
		sign =0;
		left = NULL;
		right =NULL;
	}

};

char Sign(struct head* headpointer)
{
	return headpointer->sign;
}



struct node* FirstLeft(struct head* headpointer)
{
	return headpointer ->left;
}

struct node* FirstRight(struct head* headpointer)
{
	return headpointer ->right;
}


struct node* NextLeft(struct node* nodetosearch)
{
		return nodetosearch ->rlink;
}

void InsertLeft(struct head* headnode,struct node* nodetoinsert)
{

	if(FirstLeft(headnode) ==NULL || FirstRight(headnode) == NULL)
	{
		headnode ->left = nodetoinsert;
		headnode ->right = nodetoinsert;
	}

	else

	{
		headnode ->left->llink = nodetoinsert;
		nodetoinsert->rlink = FirstLeft(headnode);
		headnode->left = nodetoinsert;
	}
}


int over_flow(struct node* nodetochk)
{
	long int ovrflwdgt = 0;

	ovrflwdgt = nodetochk->data / 100000000;
	if(ovrflwdgt !=0)
	{

			nodetochk->data = nodetochk->data - (ovrflwdgt* 100000000);
	}
	return ovrflwdgt;
}



	

void Add(struct head* oprnd1,struct head* oprnd2,struct head* result)
{


	struct node* n1,*n2 , *rslt;
	long int sum,ovrflwdgt = 0;

	if(Sign(oprnd1) == Sign(oprnd2))
	{

		n1 = FirstRight(oprnd1);
		n2 = FirstRight(oprnd2);

		while(n1!=NULL && n2!=NULL)
		{

			sum = n1->data + n2->data + ovrflwdgt;
			rslt = new struct node;
			rslt->data = sum;
			InsertLeft(result,rslt);
			ovrflwdgt = over_flow(rslt);
			n1 = NextLeft(n1);
			n2 = NextLeft(n2);
		}

		while(n1 != NULL)
		{

			sum = n1->data + ovrflwdgt;
			rslt = new struct node;
			rslt->data = sum;
			InsertLeft(result,rslt);
			ovrflwdgt = over_flow(rslt);
			n1 = NextLeft(n1);
			n2 = NextLeft(n2);
		}

		while(n2 != NULL)
		{
			sum = n2->data + ovrflwdgt;
			rslt = new struct node;
			rslt ->data = sum;
			InsertLeft(result,rslt);
			ovrflwdgt = over_flow(rslt);
			n2 = NextLeft(n2);
		}

		if(ovrflwdgt > 0)
		{

			rslt = new struct node;
			rslt->data = ovrflwdgt;
			InsertLeft(result,rslt);
		}

	}

}

No one here is likely to "do it for you". If you have a question, we'll be glad to answer.

Please read the sticky posts at the top of this forum, and place code tags around your program code, like:

[code]

your code goes here

[/code]

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.