⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.cpp

📁 多位数加法 多位数加法 多位数加法
💻 CPP
字号:
#include<stdio.h>
#include<malloc.h>
#define null 0
struct node{  int num;
              struct node *next;};
#define LEN sizeof(struct node)
void input(struct node *head);
int char_to_num(char a);
void result(struct node *head1, struct node *head2);
void main()
{  struct node *head1,*head2;
   head1=(struct node *) malloc(LEN);
   printf("输入数字1:");
   input(head1);
   getchar();
   printf("输入数字2:");
   head2=(struct node *) malloc(LEN);
   input(head2);
   result(head1,head2);
   
}
void input(struct node *head)
{    struct node *newnode;
	 char a;
     head->next=null;
	while(1)
	{  a=getchar();
	   if(a=='#') break;
	   newnode=(struct node *) malloc(LEN);
	   newnode->num=char_to_num(a);
	   newnode->next=head->next;
	   head->next=newnode;
	}
}
int char_to_num(char a)
{int num;
 num=a-48;
 return(num);
}
void result(struct node *head1, struct node *head2)
{  int m=0;
   struct node *head,*newnode,*next;
   head=newnode=(struct node *) malloc(LEN);
   head->next=null;
   while(head1->next!=null&&head2->next!=null)
   {  head1=head1->next;
      head2=head2->next;
      m=head1->num+head2->num+m;
	  newnode=(struct node *) malloc(LEN);
	  newnode->num=m%10;
	  if(m>=10) m=1;
	  else m=0;
      newnode->next=head->next;
	  head->next=newnode;
   }
   if(head1->next!=null) while(head1->next!=null)
   {  head1=head1->next;
	  newnode=(struct node *) malloc(LEN);
	  newnode->num=head1->num+m;
	  m=0;
      newnode->next=head->next;
	  head->next=newnode;
   }
   if(head2->next!=null) 
   {while(head2->next!=null) {  head2=head2->next;
	                            newnode=(struct node *) malloc(LEN);
	                            newnode->num=head2->num+m;
	                            m=0;
                                newnode->next=head->next;
	                            head->next=newnode;}
   }
   if(m==1) {  newnode=(struct node *) malloc(LEN);
              newnode->num=1;
              newnode->next=head->next;
			  head->next=newnode;}
   next=head->next;
   printf("结果为:");
   while(next!=null)
   {  printf("%d",next->num);
      next=next->next;
   }
   putchar('\n');
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -