二维数组计算处 N! 怎么前面对,后面有问题啊?
#include<stdio.h>void main()
{
int Data[100]; /*存储40位数的整数数组*/
int Digit; /*数据位数变量 */
int i,j,r,k; /*循环计数变量 */
int N; /*用户输入值 */
for(i=0;i<100;i++) /*将数组初始值设为0 */
Data[i]=0;
Data[0]=1; /*设第0位数数组为1 */
Data[1]=1; /*设第1位数数组为1 */
Digit=1; /*设数据位数为1 */
printf("请输入一个整数:");
scanf("%d",&N); /*读取用户欲求的N值 */
for(i=1;i<N+1;i++)
{
for(j=1;j<Digit+1;j++)
Data[j]*=i; /*数组中内容的运算 */
for(j=1;j<Digit+1;j++)
{
if(Data[j]>10)
{
for(r=1;r<Digit+1;r++)
{
if(Data[Digit] > 10)
Digit++ ; /*当数组中的值大于10时,则位数加1*/
Data[r+1]=Data[r+1]+Data[r]/10; /*前一位数组值=前一位数组值+此位数组值除以10*/
Data[r] = Data[r]%10 ; /*此位数组值=此位数组值除10取余数*/
}
}
}
printf("%d!=",i);
for(k=Digit;k>0;k--) /*输出数组中的内容*/
printf("%d",Data[k]);
printf("\n");
}
}
//27!=10888869450418352160768000000
这以后就错了