有解決呀。
#include<stdio.h>
#include<string.h>
#define bool int
#define false 0
#define true 1
int main()
{
int nlen1; //len1,len1的長度
int len1[200],sum[200];
int i,j;
char a[200];
int bStartOutput=false;
//freopen("in.txt","r",stdin);
memset(sum,0,sizeof(sum));
while(scanf("%s",a)&&*a!='0')
{
memset(len1,0,sizeof(len1));
nlen1=strlen(a);
j=0;
for(i=nlen1-1;i>=0;i--)
len1[j++]=a[i]-'0';
for(i=0;i<=nlen1;i++)
{
sum[i]=sum[i]+len1[i];
if(sum[i]>=10)
{
sum[i]-=10;
sum[i+1]=sum[i+1]+1;
}
}
}
for(i=nlen1+1; i >= 0; i -- )
{
if( bStartOutput)
printf("%d", sum[i]); //如果多余的0 已經都跳過
else
if( sum[i] )
{
printf("%d", sum[i]);
bStartOutput = true; //碰到第一個非0 的值,就說明多余的
}
}
printf("\n");
if(bStartOutput==false)
printf("0\n");
return 0;
}
#include<stdio.h>
#include<string.h>
#define bool int
#define false 0
#define true 1
int main()
{
int nlen1; //len1,len1的長度
int len1[200],sum[200];
int i,j;
char a[200];
int bStartOutput=false;
//freopen("in.txt","r",stdin);
memset(sum,0,sizeof(sum));
while(scanf("%s",a)&&*a!='0')
{
memset(len1,0,sizeof(len1));
nlen1=strlen(a);
j=0;
for(i=nlen1-1;i>=0;i--)
len1[j++]=a[i]-'0';
for(i=0;i<=nlen1;i++)
{
sum[i]=sum[i]+len1[i];
if(sum[i]>=10)
{
sum[i]-=10;
sum[i+1]=sum[i+1]+1;
}
}
}
for(i=nlen1+1; i >= 0; i -- )
{
if( bStartOutput)
printf("%d", sum[i]); //如果多余的0 已經都跳過
else
if( sum[i] )
{
printf("%d", sum[i]);
bStartOutput = true; //碰到第一個非0 的值,就說明多余的
}
}
printf("\n");
if(bStartOutput==false)
printf("0\n");
return 0;
}