DEV C++ 的调试问题
下面是一个用递推求阶乘的程序(考过软设的人应该知道)我用DEV C++断点调试的时候碰到点麻烦.请各位帮看看.
无论在哪设置断点,程序都停不下来
设置断点后再点调试,跟点运行的效果是一样的...
就是.输入要求的阶乘,再回车后,它就全部都算出来了.
这是为什么啊?我调试在其它程序时,没有遇到过这种情况,什么回事啊.
#include<stdio.h>
#include<malloc.h>
#define MAXN 1000
void pnext(int a[],int k)
{
int *b, m = a[0], i, j, r, carry;
b = (int *)malloc(sizeof(int) * (m+1));
for (i = 1; i <= m; i++)
b[i] = a[i];
for (j = 1; j < k; j++)
{
for (carry = 0,i = 1; i<= m; i++)
{
r = (i <= a[0] ? a[i] + b[i] : a[i])+carry;
a[i] = r%10;
carry = r/10;
}
if (carry) a[++m] = carry;
}
free(b);
a[0] = m;
}
void write(int *a, int k)
{
int i;
printf("%4d!=",k);
for (i = a[0]; i > 0; i--)
printf("%d",a[i]);
printf("\n\n");
}
int main(void)
{
int a[MAXN],n,k,i;
printf("Enter the number n:");
scanf("%d",&n);
a[0] = 1;
a[1] = 1;
write(a,1);
for (k = 2; k <= n; k++)
{
pnext(a,k);
write(a,k);
}
getch();
return 0;
}