标签:
#include"stdio.h" #include"stdlib.h" #include"string.h" #define N 105 int a[N]; int main() { int i,j,n,n1,flag; char ch[N]; scanf("%d",&n); while(n--) { memset(a,0,sizeof(a)); //数组初始化为零 while(scanf("%s",ch),ch[0]!=‘0‘) //输入零结束 { n1=strlen(ch); for(i=n1-1,j=0;i>=0;i--) { a[j++]+=ch[i]-‘0‘; a[j]+=a[j-1]/10; //进位 a[j-1]%=10; //取余 } } flag=0; for(i=N-1;i>0;i--) { if(flag) printf("%d",a[i]); else if(a[i]) { printf("%d",a[i]); flag=1; } } printf("%d\n",a[0]); //输入0时应输出0,错了n多次 if(n) //输出块之间有空行 printf("\n"); } return 0; }
改版 为了一直WA
#include"stdio.h" #include"stdlib.h" #include"string.h" #define N 105 int a[N],b[N]; int main() { int i,j,n,n1,flag; char ch[N]; scanf("%d",&n); while(n--) { memset(a,0,sizeof(a)); //数组初始化为零 while(scanf("%s",ch),ch[0]!=‘0‘) //输入零结束 { n1=strlen(ch); memset(b,0,sizeof(b)); for(i=0,j=n1-1;j>=0;j--,i++) b[i]=ch[j]-‘0‘; int h=0; int m; for(i=0;i<n1;i++) { m=a[i]+b[i]+h; a[i]=m%10; h=m/10; } while(h) { a[i]=h%10; n1++; h=h/10; } } flag=0; for(i=N-1;i>0;i--) { if(flag) printf("%d",a[i]); else if(a[i]) { printf("%d",a[i]); flag=1; } } printf("%d\n",a[0]); //输入0时应输出0,错了n多次 if(n) //输出块之间有空行 printf("\n"); } return 0; }
标签:
原文地址:http://www.cnblogs.com/wft1990/p/5864025.html