如何用vcdebug出错误
AAdai 2006-10-02 04:10:42 #include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define MAX2 20002
#define MAX1 10000
unsigned int strToint(char pA[], unsigned int a[]);
unsigned int print(unsigned int *pA);
unsigned int formal(unsigned int *pA);
unsigned int mul(unsigned int *a,unsigned int *b,unsigned int *c);
void main()
{
unsigned int *a = (unsigned int *)malloc(MAX1*sizeof(unsigned int));
unsigned int *b = (unsigned int *)malloc(MAX1*sizeof(unsigned int));
unsigned int *c = (unsigned int *)malloc(MAX2*sizeof(unsigned int));
char *pA = (char *)malloc(MAX1*sizeof(char));
char *pB = (char *)malloc(MAX2*sizeof(char));
scanf("%s",pA);
scanf("%s",pB);
strToint(pA,a);
strToint(pB,b);
mul(a,b,c);
print(c);
free(a);
free(b);
free(c);
free(pA);
free(pB);
getch();
}
unsigned int strToint(char pA[], unsigned int a[])
{
/*将输入数字字符串存入数组中.
输入"4512"
a[]={4,2,1,5,4}其中a[0]为长度.为倒序
*/
unsigned int i,j;
for(i = 0; pA[i] ; i++)
;
a[0] = i;
i--;
for(j=1;i>=0;i--,j++)
a[j] =pA[i] - '0';
return 1;
}
unsigned int print(unsigned int *pA)
{
unsigned int i;
if(NULL == pA)
return 0;
for(i = pA[0]; i >= 1;i--)
printf("%d",pA[i]);
return 1;
}
unsigned int formal(unsigned int *pA)
{
/*
将数组各位调整为小于9的数,大于9时进位?
*/
unsigned int i; /*max1*/
for(i = pA[0]+1; i < MAX2;i++)
pA[i] = 0;
for(i = 1;i <= pA[0] || pA[i]>=10; i++)
{
pA[i+1] += pA[i] / 10;
pA[i] = pA[i] % 10;
}
if( pA[i] != 0)
pA[0] = i;
return pA[0];
}
unsigned int mul(unsigned int *a,unsigned int *b,unsigned int *c)
{
unsigned int i,j,t;
for(i = 0; i < MAX2;i++)
c[i] = 0;
for(i = 1; i <= a[0];i++)
{
for(j = 1,t = i;j <= b[0];j++)
c[t++] += a[i] *b[j];
}
c[0] = a[0] + b[0] -1;
formal(c);
return c[0];
}