C语言大数加法的一个疑问求解
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,k,n,m,a[110],b[110],max,c[110];
char s[110],ss[110];
while(gets(s),gets(ss))
{
k=0;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
n=strlen(s);
m=strlen(ss);
for(i=n-1;i>=0;i--)
a[k++]=s[i]-'0';//逆序存储,以便相加的时候从个位开始相加
k=0;
for(i=m-1;i>=0;i--)
b[k++]=ss[i]-'0';
max=n;
if(m>max)
max=m; //找到两个数中较长的那个
for(i=0;i<max;i++)
{
c[i]=a[i]+b[i]+c[i];
if(c[i]>=10)
{
c[i]=c[i]-10;
c[i+1]++;
}
}
while(c[max-1]==0&&max!=1)//去掉前缀0
max--;
for(i=max-1;i>=0;i--)
printf("%d",c[i]);
printf("\n");
}
return 0;
}
其中while(c[max-1]==0&&max!=1)//去掉前缀0
max--;
这两句起到什么作用,没有明白