汪东波吧 关注:13贴子:377
  • 2回复贴,共1
#include<stdio.h>
#include<string.h>
void move_num(char num[]);
void conv_num(char num[]);
void add(char num1[],char num2[]);
void printf_num(char num[]);
int main()
{
char a[40];
char b[40];
scanf("%s",a);
scanf("%s",b);
move_num(a);
move_num(b);
conv_num(a);
conv_num(b);
add(a,b);
printf_num(a);
return 0;
}
void move_num(char num[])//将数字移位,都移到最后几位,便于计算。
{
int n=strlen(num);
int i,j=40;
for(i=0;i<=n;i++){
num[j]=num[n-i];
j--;
}
while (j>=0)
{num[j]='0';
j--;}
}
void conv_num(char num[])//将字符串转换成数字,这样就可以进行加法
{
int i;
for(i=0;i<=40;i++)
{ num[i]=num[i]-'0';
}
}
void add (char num1[],char num2[])//加法运算,
{
int i;
for(i=40;i>0;i--)
{num1[i]=num1[i]+num2[i];
if(num1[i]>=10)
{num1[i-1]+=num1[i]/10;// 逢十进位 ,
num1[i]=num1[i]%10;
}
}
}
void printf_num(char num[])//输出
{
int i=0;
while(num[i]==0)//将移位后的填充的0去掉。
{i++;}
for( ;i<40;i++)
{
printf("%d",num[i]);
}
printf("\n");
}


IP属地:江苏1楼2014-12-08 21:46回复


    IP属地:江苏2楼2014-12-08 22:02
    收起回复