int a[1000]; int b[1000]; int c[1000]; int lena; int lenb; int lenc; void add() { //b=b+a int i; if (lena>lenb) { lenc = lena; } else{ lenc = lenb; } i=0; while (i<=lenc) { c[i] = 0; i=i+1; } i=0; while (i= 10) { c[i+1] = c[i+1] + 1; c[i] = c[i] - 10; } i=i+1; } if (c[lenc]) { //有进位 数组c的长度+1 lenc = lenc+1; } //b<-c i=0; while (i= 10) { c[i+1] = c[i+1] + (c[i] / 10); c[i] = c[i] % 10; } i=i+1; } //最高位的值可能>=10 要展开成多位 while (c[lenc] >= 10) { c[lenc+1] = c[lenc+1] + (c[lenc] / 10); c[lenc] = c[lenc] % 10; lenc = lenc+1; } if (c[lenc]) { //0<最高位<=10 也要长度+1 lenc = lenc+1; } //a<-c i=0; while (i=0) { putint(b[i]); i=i-1; } putch(10); return 0; }