如何用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];
}
...全文
169 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧