高手指导我这个程序出了什么问题
题目是求整数m,n(0<m,n<10的50次方)的和(sum),积(product)?我的代码是(有点长):
#include <stdio.h>
int main()
{
char a[101];
int b[50],c[50],sum[51],pro_1[101],i,k,l,d,e,f,su,pr,g,h,n;
int state = 0;
while (gets(a) != EOF)
{
for (i = 0;a[i] != '\0';i++)
{
if (a[i] == ' ')
k = i;
}
l = i - 1 - k;
e = 49;
for (d = k - 1;d >= 0;d = d - 1)
{
b[e] = a[d] - 48;
e = e - 1;
}
for (f = 0;f <= (49 - k);f++)
{
b[f] = 0;
}
e = 49;
for (d = i - 1;d > k;d = d - 1)
{
c[e] = a[d] - 48;
e = e - 1;
}
for (f = 0;f <= (49 - l);f++)
{
c[f] = 0;
}
e = 50;
g = 0;
for (d = 49;d >= 0;d = d - 1)
{
su = b[d] + c[d] + g;
if (su < 10)
{
sum[e] = su;
g = 0;
}
if (su >= 10)
{
sum[e] = su % 10;
g = 1;
}
if (d == 0)
{
if (su < 10)
{
sum[0] = 0;
}
if (su >= 10)
{
sum[0] = 1;
}
}
e = e - 1;
}
state = 0;
for (f = 0;f <= 50;f++)
{
if (state == 0 && sum[f] == 0);
else if (state != 0 || sum[f] != 0)
{
state = 1;
printf ("%d",sum[f]);
if (f == 50)
printf ("\n");
}
}
g = 100;
for (d = 49;d >= 0;d = d - 1)
{
pro_1[g] = c[d];
g = g - 1;
}
for (d = 0;d <= 50;d++)
{
pro_1[d] = 0;
}
int pro_2[101] = {0};
for (f = 0;f <= 49;f++)
{
g = 0;
int pro_3[101] = {0};
for (d = 0;d <= 100;d++)
{
pr = b[49 - f] * pro_1[100 - d] + g;
if (pr < 10)
{
pro_3[100 - d] = pr;
g = 0;
}
if (pr >= 10)
{
pro_3[100 - d] = pr % 10;
g = pr / 10;
}
if (d == 100)
{
if (pr <10)
{
pro_3[0] = 0;
}
if (pr >= 10)
{
pro_3[0] = pr/10;
}
}
}
h = 0;
for (d = 100;d >= 1;d = d - 1)
{
su = pro_2[d] + pro_3[d] + h;
if (su < 10)
{
pro_2[d] = su;
h = 0;
}
if (su >= 10)
{
pro_2[d] = su % 10;
h = 1;
}
if (d == 1)
{
if (su < 10)
{
pro_2[0] = 0;
}
if (su >= 10)
{
pro_2[0] = 1;
}
}
}
for (d = 0;d <= 99;d++)
{
pro_1[d] = pro_1[d + 1];
if (d == 99)
{
pro_1[100] = 0;
}
}
}
state = 0;
for (f = 0;f <= 100;f++)
{
if (state == 0 && pro_2[f] == 0);
else if (state != 0 || pro_2[f] != 0)
{
state = 1;
printf ("%d",pro_2[f]);
if (f == 100)
printf ("\n\n");
}
}
}
return 0;
}
结果我输入ctrl+z结束不了,求高手指教?