poj 1047多个大数相加

这个题的输入有点问题,只有一个换行


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char str[10005];
int sum[10005];
void add(char *Str) {
 int len=strlen(Str);
 int z=1;
 for(int i=len-1;i>=0;--i) {                  //每输入一次 都调用add加到sum数组中去
  sum[z]+=(Str[i]-'0');
  sum[z+1]+=sum[z]/10;
  sum[z]%=10;
  z++;
 }
}
int main() {
 int Case;
 scanf("%d",&Case);
 while(Case--) {
  memset(sum,0,sizeof(sum));
  while(scanf("%s",str)&&str[0]!='0')     //输入字符串为零的话停止输入
   add(str);
  int flage=0;
  for(int i=10000;i>1;--i){
            if(flage==0&&sum[i]==0)
                continue;
            else {
                flage=1;
                printf("%d",sum[i]);
            }
  }
  printf("%d\n",sum[1]);
  if(Case!=0)
  printf("\n");
 }
 return 0;
}



你可能感兴趣的:(poj,1047)