求助呀!!关于进制转换的问题,VC编的,2到10进制的转换,运行时提示执行link什么错误
long change(int a[],int len,int b){ int i,k =1;
long num =0;
for(i=1;i<=len;i++)
{ num =num +a[i]*k;
k = k*b;
}
return num;
}
print_headline()
{
printf("\n1:10进制转换为其他进制\n");
printf("2:其他进制转换为10进制\n");
printf("0:推出\n");
printf("请输入服务序号\n");
}
ten_to_oth()
{ int sum,n,i=0,j,arr[80];
printf("请输入一个十进制的数");
scanf("%d",&sum);
printf("请输入要转换的进制");
scanf("%d",&n);
do
{ i++;
arr[i]=sum%n;
sum=sum/n;
if(i>=80)
printf("数值溢出\n");
}while(sum!=0);
printf("结果是:\t");
for(j=i;j>0;j--)
printf("%d",arr[j]);
printf("\n");
}
oth_to_ten()
{ int base,i,num,arr[80];
long sum=0;
char ch;
printf("请输入被转换数的进制值");
scanf("%d",&base);
printf("请输入该数");
scanf("%d",&num);
for(i=1;num!=0;i++)
{ arr[i]=num%10;
num=num/10;
}
sum=change(arr,i-1,base);
printf("结果是:%ld\n",sum);
}
mian()
{
int flag=1;
while(flag!=1)
{
print_headline();
scanf("%d",&flag);
switch(flag)
{ case 1:ten_to_oth();break;
case 2:oth_to_ten();break;
case 0:exit();
}
}
}