Posts

Showing posts from August, 2019

Add two very large number using linked list

/*this program will add two large number(any number of digits)*/ #include<stdio.h> #include<stdlib.h> typedef struct linked { int val; struct linked *next; }lnk; lnk *create(); lnk *add(lnk *,lnk *); void disp(lnk *); int main() { lnk *h1,*h2,*h3; printf("\n\nEnter the first large number : "); h1=create(); printf("\n\nEnter the second large number : "); h2=create(); h3=add(h1,h2); printf("\n\nResultant number : "); disp(h3); return 0; } lnk *create() { int a,m; lnk *temp,*h=NULL; char ch; while((ch=getch())!=13) { printf("%c",ch); temp=(lnk*)malloc(sizeof(lnk)); temp->val=ch-'0'; temp->next=h; h=temp; } return h; } lnk *add(lnk *h1,lnk *h2) { lnk *h3=NULL,*temp,*ptr; int cr,t=0; while(h1!=NULL && h2!=NULL) { t=h1->val+h2->val+t; cr=t%10; temp=(lnk *)malloc(sizeof(lnk)); temp->val=cr; temp->next=h3; h3=temp; t=t/10; h1=h1->next; h2=h2->next; } if(h1!=NULL && h2==NULL) { while(h1!=NULL)