c语言程序改写

来源:百度知道 编辑:UC知道 时间:2024/07/07 19:30:02
求助各位高手谁能将下面大数阶乘的程序改为只用数组不用指针的程序呢?
谢谢大家了!
#include<stdio.h>
> int arr[25];
> void mul(int arr[],int n,int *len)
> {
> int c=0,i,l=*len;
> for(i=0;i<l;i++)
> {
> arr[i]=arr[i]*n+c;
> c=arr[i]/10;
> arr[i]%=10;
> }
> while(c!=0)
> {
> arr[l++]=c%10;
> c/=10;
> }
> *len=l;
> }
> int main()
> {
> int i,n,len;
> scanf("%d",&n);
> len=1;arr[0]=1;
> for(i=2;i<=n;i++)
> mul(arr,i,&len);
> for(i=len-1;i>=0;i--)
> printf("%d",arr[i]);
> }

#include<stdio.h>
int arr[25];
int mul(int arr[],int n,int len)
{
int c=0,i,l=len;
for(i=0;i<l;i++)
{
arr[i]=arr[i]*n+c;
c=arr[i]/10;
arr[i]%=10;
}
while(c!=0)
{
arr[l++]=c%10;
c/=10;
}
return l;
}
int main()
{
int i,n,len;
scanf("%d",&n);
len=1;arr[0]=1;
for(i=2;i<=n;i++)
len=mul(arr,i,len);
for(i=len-1;i>=0;i--)
printf("%d",arr[i]);
return 0;
}
程序中 len 是位数 在for循环里 要不断更新