HDOJ1002

it2022-05-19  81

#include<stdio.h>#include<string.h>int main(){char a[1000],b[1000];int c[1005];char ch;int len_a,len_b;int idx_c,len_c;int sum;int i,j; len_a = 0; len_b = 0; scanf("%d",&sum);//读取数据 for(j=0 ; j<sum ;j++) {//读取缓存区数据 memset(c,0,sizeof(int)*1005); scanf("%s",a); scanf("%s",b); len_a = strlen(a)-1; //这里是下标而不是长度。 len_b = strlen(b)-1;//确定结果的长度 if(len_a >= len_b) { idx_c = len_a+1; len_c = idx_c; }else { idx_c = len_b+1; len_c = idx_c; }//进行相加的操作 do { c[idx_c] = c[idx_c]+a[len_a]-'0'+b[len_b]-'0';if(c[idx_c] >= 10) { c[idx_c] %= 10; c[idx_c-1] += 1; } idx_c--; len_a--; len_b--; }while(len_a!=-1 && len_b!=-1 );while(len_a != -1) { c[idx_c] = c[idx_c]+a[len_a]-'0';if(c[idx_c] >= 10)//这里要进行进位判断 { c[idx_c] %= 10; c[idx_c-1] += 1; } idx_c--; len_a--; }while(len_b != -1) { c[idx_c] = c[idx_c]+b[len_b]-'0';if(c[idx_c] >= 10) { c[idx_c] %= 10; c[idx_c-1] += 1; } idx_c--; len_b--; } printf("Case %d:\n%s + %s = ",j+1,a,b);if(c[idx_c] != 0) //看这个位是否有"值" printf("%d", c[idx_c]);for(i = idx_c + 1; i <= len_c ; i++) { printf("%d", c[i]); }if(j == sum-1) printf("\n");else printf("\n\n"); }return 0;}

 

转载于:https://www.cnblogs.com/CheeseZH/archive/2012/03/14/2397049.html

相关资源:数据结构—成绩单生成器

最新回复(0)