标题:用C来分解一个比较大的数字
只看楼主
pliuyu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-11-12
结帖率:50%
 问题点数:0 回复次数:1 
用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 编辑 ]
搜索更多相关主题的帖子: 数字 分解 
2010-01-16 20:41
pliuyu
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-11-12
得分:0 
a=(int *)calloc(j+1,sizeof(int));
找到问题了,在这,为什么在学校的机器上a=calloc(j+1,sizeof(int));可以编译通过
在家里的vc2008上不行呢?

[ 本帖最后由 pliuyu 于 2010-1-16 21:14 编辑 ]
2010-01-16 21:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-295884-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.619860 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved