加法器

#include
#include
int main()
{
	char a[1000];
	char b[1000];
	int a1[1000]={0};int a2[1000]={0};int a3[10000]={0};
	int jw=0;
	int i,j,m,n,c,d,x,y;//m为最大值,x为a1下标,y为a2下标,z为a3下标
	printf("输入第一个数组元素:\n");
	gets(a);
	printf("输入第二个数组元素:\n");
	gets(b);
	i=strlen(a);
	j=strlen(b);
	if(i>j)
		m=i;
	else
		m=j;
	n=0;
	for(c=i-1;c>=0;c--)
	{
		a1[n]=a[c]-48;
		n++;
	}
	n=0;
	for(d=j-1;d>=0;d--)
	{
		a2[n]=b[d]-48;
		n++;
	}
	for(x=0;x<=m+1;x++)
	{
		a3[x]=((a1[x]+a2[x])%10)+jw;
		if(((a1[x]+a2[x])/10)!=0)
			jw=1;
		else 
			jw=0;
	}
	for(x=m;x>=0;x--)
	{
		if(a3[x]!=0)
			break;
	}
	for(x;x>=0;x--)
	{
		printf("%d",a3[x]);
	}
	printf("\n");
	return 0;
}














































/*
#include
#include
int main()
{
	char a[1000],b[1000];
	int a1[1000]={0},b1[1000]={0},c1[10001]={0}; //初始化 
	int i,j,flag,lena,lenb,maxlen;
	printf("int put 1 group numbers:");	
	gets(a);
	printf("int put 2 group numbers:");
	gets(b);
	lena=strlen(a);
	lenb=strlen(b);
	if(lena>lenb)
	{
		maxlen=lena;
	}
	else
		maxlen=lenb;
	j=0;
	for(i=lena-1;i>=0;i--)    //字符转数字   倒叙排列 
	{
		a1[j]=a[i]-'0';
		j++;
	}
	j=0;
	for(i=lenb-1;i>=0;i--)
	{
		b1[j]=b[i]-'0';
		j++;
	}
	flag=0;  //进位初始化 
	for(i=0;i=0;x--)   //i 当作指针  由后向前找 第一个不为0的数 
	{
		if(c1[x]!=0)
		{
			break;
		}
		
	}	
	printf("add out:");
	for(i;i>=0;i--)           //结果倒排  倒叙输出 
	{
		printf("%d",c1[i]);
	} 
	printf("\n");
	return 0;
}*/

 

你可能感兴趣的:(算法)