用C语言编了一个两个大数相乘求结果的程序,但是在VC++6.0上编译不了,帮忙看看。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char s[1000];
int a[1000],b[1000],c[2000];
void str2num(char s[],int v[]) //把输入的字符串转换成数字,每一维保存一位
{
int i,len;
len = strlen(s);
v[0] = len;
for (i=len-1;i>=0;i--)
v[len-i] = s[i]-'0';
}
void multi(int a[], int b[],int c[])
{
int i,j;
for (i=1;i<=a[0];i++)
for (j=1;j<=b[0];j++)
{
c[i+j-1] = c[i+j-1]+a[i]*b[j]; //错位相乘
}
for (i=1;i<=a[0]+b[0];i++)
{
c[i+1] = c[i+1]+c[i]/10;
c[i] = c[i]%10;
}
if (c[a[0]+b[0]]!=0) //确定答案的位数是a[0]+b[0]还是a[0]+b[0]-1
c[0]=a[0]+b[0];
else c[0]=a[0]+b[0]-1;
}
int main()
{
printf("First number:");
scanf("%s",s);
str2num(s,a);
printf("Second number:");
scanf("%s",s);
str2num(s,b);
multi(a,b,c);
int i;
for (i=c[0];i>=1;i--) //输出答案
printf("%d",c[i]);
puts("");
return 0;
}

T1.c
c:\documents and settings\administrator\桌面\t1.c(44) : error C2143: syntax error : missing ';' before 'type'
c:\documents and settings\administrator\桌面\t1.c(45) : error C2065: 'i' : undeclared identifier
Error executing cl.exe.
T1.obj - 2 error(s), 0 warning(s)

把main函数里的i定义在main函数开始就行了,或者把T1.c改名为T1.cpp
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-12
int i;定义放到最前面。
第2个回答  2015-01-11

可以运行啊,

第3个回答  2015-01-16
你可以放在控制台编译。
第4个回答  2015-01-11
没错啊,我编译成功了
相似回答