题目大意:给出两个整数,求这两个整数的积

解题思路:用数组进行存储

错误所在:当len3等于2000时为什么会是wrong answer,因为溢出吗?

#include<cstdio>
#include<cstring>

int main() {
	char num1[1000];
	char num2[1000];
	while( gets(num1)) {
		gets(num2);
		int len1 = strlen(num1);
		int len2 = strlen(num2);

		char str1[1000] = {0};
		char str2[1000] = {0};
		char sum[2000] = {0};
		for(int i = 0; i < len1; i++)
			str1[i] = num1[len1 - i - 1] - '0'; 
		for(int i = 0; i < len2; i++)
			str2[i] = num2[len2 - i - 1] - '0';
		int i, j;	
		for(i = 0; i < 1000; i++)
			for(j = 0; j < 1000; j++) {
		//		int num = str1[i] * str2[j];
				sum[i+j] = str1[i] * str2[j]  + sum[i+j];
				
				if(sum[i+j] >= 9) {
					sum[i+j+1] = sum[i+j+1] + sum[i+j] / 10;
					sum[i+j] = sum[i+j] % 10;
				}	
			}
			int len3 = 1999;	
			if((num1[0] == '0' && len1 == 1) || (num2[0] =='0' && len2 == 1))
				printf("0");
			else {
				for(;len3 >= 0;len3--)
					if(sum[len3] != 0)
						break;
		for(int i = len3; i >= 0; i--) 
			printf("%d",sum[i]);
	}
		printf("\n");
	}	
	return 0;
}