帮我调试一个简单的C程序

来源:百度知道 编辑:UC知道 时间:2024/05/06 07:12:11
代码如下:我是用DEVCPP的
#include <stdio.h>
#include <malloc.h>

int A(int n)
{
int i = 1;
while (n)
{
if (n % 10 == 4 || n % 100 == 62)
return i;
n /= 10;
i *= 10;
}
return 0;
}

int main(void)
{
int n, m, i, c, b;
int *a = new int[1000000];

a[0] = 0;
for (c = 0,i = 1; i < 1000000; i += b)
{
b = A(i);
if (!b) c += b = 1;
for (n = 0; n < b; n++)
a[i + n] = c;
}

while (scanf("%d%d", &n, &m), n + m)
printf("%d\n", a[m] - a[n-1]);

return 0;
}

编译的错误如下:
738405_0_0_32182.c
738405_0_0_32182.c(19) : error C2065: “new” : 未声明的标识符
738405_0_0_32182.c(19) : error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
738405_0_0_32182.c(19) : error C2143: 语

有必要告诉你,c语言里没有new这个东西,
把int *a = new int[1000000];
改成int a[1000000];
就好了

我不知道你用的是什么编译器,我用的VC++来编译完全没有问题,可以运行。但至于你这个程序要实现什么功能我就不知道了

我在DEVC++4.9.9.2和TC++上都通过了啊
可能是编译器的事