用C来分解一个比较大的数字
数组的第一位是数字的位数,然后依次显示数字譬如34157261850,11位出来的数组应该是
11 0 5 8 1 6 2 7 5 1 4 3
第一个函数 输入n 返回数组
第二个函数 从数组来显示n
第三个函数 两个数相加,返回得数的数组
第四个函数 两个数相乘,返回得数的数组
主函数,测试以上函数
我用vc08编译通过不了,说a=calloc(j,sizeof(int));这一行无法从void转换为int,请问是什么问题?谢谢
再就是请教一下第三和第四个函数
#include<stdio.h>
#include <stdlib.h>
int *tab(int n){
int *a;
int i;
int j=1;
int k=10;
while(n/k!=0){
j+=1;
k*=10;}
a=calloc(j+1,sizeof(int));
a[0]=j;
for(i=1;i<=j;i++){
a[i]=n%10;
n/=10;
}
return a;}
void aff(int n,int *tab){
int i;
for(i=n;i>0;i--){
printf("%d",tab[i]);
}
printf(" \n");
}
int *somme(int n1,int n2){
int n=n1+n2;
int *a=tab(n);
return a;
}
int *mul(int n1,int n2){
int n=n1*n2;
int *a=tab(n);
return a;
}
int main()
{
int n=12345;
aff(5,tab(n));
int n1=54321;
aff(5,somme(n,n1));
aff(9,mul(n,n1));
return 0;
}
[ 本帖最后由 pliuyu 于 2010-1-16 21:15 编辑 ]