C语言编译任意长的整数加法程序,求大神!! 100
用C语言编译!!!!!求程序!!!任意长的整数加法问题描述:设计一个程序实现两个任意长的整数的求和运算。基本要求:利用双向循环链表,设计一个实现任意长的整数进行加法运算的...
用C语言编译!!!!!求程序!!!
任意长的整数加法
问题描述:设计一个程序实现两个任意长的整数的求和运算。
基本要求:利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。 展开
任意长的整数加法
问题描述:设计一个程序实现两个任意长的整数的求和运算。
基本要求:利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。 展开
2个回答
展开全部
vs2008测试通过,请采纳
#include <windows.h>
#include <stdio.h>
#define N 20
void addmain(char s1[N],char s2[N],int sResult[N]);
void main()
{
int sResult[N+1];
int x;
char s1[N],s2[N];
printf("请选择运算类型,加输入1,减输入2:");
scanf("%d",&x);
switch(x)
{
case 1:
printf("你选择了加法,请输入两个整数:");
scanf("%s%s",s1,s2);
printf("\n%s + %s",s1,s2);
addmain(s1,s2,sResult);
break;
case 2:
printf("你选择了减法");
break;
default:
printf("error");
}
}
void addmain(char s1[N],char s2[N],int sResult[N+1])
{
int sa[N],sb[N];
int i,x;
int *p3;
char *p1,*p2;
p1=s1;
p2=s2;
p3=sResult;
i=0;
*(p3+1)=0;
while(*(p1+i)!='\0' && *(p2+i)!='\0' && i<=(N+1))
{
x=*(p3+i+1)+(*(p1+i)-48)+(*(p2+i)-48);
if (x>9)
{
*(p3+i+1)=x-10;
*(p3+i+1+1)=1;
}
else
{
*(p3+i+1)=x;
*(p3+i+1+1)=0;
}
i++;
}
if (*(p1+i)=='\0')
{
while(*(p2+i)!='\0' && i<=(N+1))
{
x=*(p3+i+1)+(*(p2+i)-48);
if (x>9)
{
*(p3+i+1)=x-10;
*(p3+i+1+1)=1;
}
else
{
*(p3+i+1)=x;
*(p3+i+1+1)=0;
}
i++;
}
}
else
{
while(*(p1+i)!='\0' && i<=(N+1))
{
x=*(p3+i+1)+(*(p1+i)-48);
if (x>9)
{
*(p3+i+1)=x-10;
*(p3+i+1+1)=1;
}
else
{
*(p3+i+1)=x;
*(p3+i+1+1)=0;
}
i++;
}
}
*p3=i;
i=0;
printf("结果为:");
while(i<*p3)
{
printf("%d",*(p3+*p3-i));
i++;
}
}
#include <windows.h>
#include <stdio.h>
#define N 20
void addmain(char s1[N],char s2[N],int sResult[N]);
void main()
{
int sResult[N+1];
int x;
char s1[N],s2[N];
printf("请选择运算类型,加输入1,减输入2:");
scanf("%d",&x);
switch(x)
{
case 1:
printf("你选择了加法,请输入两个整数:");
scanf("%s%s",s1,s2);
printf("\n%s + %s",s1,s2);
addmain(s1,s2,sResult);
break;
case 2:
printf("你选择了减法");
break;
default:
printf("error");
}
}
void addmain(char s1[N],char s2[N],int sResult[N+1])
{
int sa[N],sb[N];
int i,x;
int *p3;
char *p1,*p2;
p1=s1;
p2=s2;
p3=sResult;
i=0;
*(p3+1)=0;
while(*(p1+i)!='\0' && *(p2+i)!='\0' && i<=(N+1))
{
x=*(p3+i+1)+(*(p1+i)-48)+(*(p2+i)-48);
if (x>9)
{
*(p3+i+1)=x-10;
*(p3+i+1+1)=1;
}
else
{
*(p3+i+1)=x;
*(p3+i+1+1)=0;
}
i++;
}
if (*(p1+i)=='\0')
{
while(*(p2+i)!='\0' && i<=(N+1))
{
x=*(p3+i+1)+(*(p2+i)-48);
if (x>9)
{
*(p3+i+1)=x-10;
*(p3+i+1+1)=1;
}
else
{
*(p3+i+1)=x;
*(p3+i+1+1)=0;
}
i++;
}
}
else
{
while(*(p1+i)!='\0' && i<=(N+1))
{
x=*(p3+i+1)+(*(p1+i)-48);
if (x>9)
{
*(p3+i+1)=x-10;
*(p3+i+1+1)=1;
}
else
{
*(p3+i+1)=x;
*(p3+i+1+1)=0;
}
i++;
}
}
*p3=i;
i=0;
printf("结果为:");
while(i<*p3)
{
printf("%d",*(p3+*p3-i));
i++;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询