C语言编一个程序完成64位数据(无符号)的加法,减法运算
方法一:
#include<stdio.h>
#include<malloc.h>
#define len sizeof(struct Long)
struct Long
{
int data;
struct Long *next;
};
struct Long *insert(struct Long *u,int m)
{
struct Long *v;
v=(struct Long *)malloc(len);
v->data=m;
u->next=v;
return(v);
}
struct Long *input()
{
struct Long *s,*ps,*qs;
struct num
{
int num;
struct num *np;
}*p,*q;
int i,j,k;
long sum;
char c;
p=NULL;
while((c=getchar())!='\n')
if(c>='0'&&c<='9')
{
q=(struct num *)malloc(sizeof(struct num));
q->num=c-'0';
q->np=p;
p=q;
}
s=(struct Long *)malloc(len);
s->data=-1;
ps=s;
while(p!=NULL)
{
sum=0;
i=0;
k=1;
while(i<4&&p!=NULL)
{
sum=sum+k*(p->num);
i++;
p=p->np;
k=k*10;
}
qs=(struct Long *)malloc(len);
qs->data=sum;
ps->next=qs;
ps=qs;
}
ps->next=s;