【发布时间】:2016-04-12 00:21:39
【问题描述】:
以下是我对SPOJ问题的实现:http://www.spoj.com/problems/FCTRL2/
#include <stdio.h>
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int carry=0,k,i,j,num,arr[1000]={1};
scanf("%d",&num);
for(i=1;i<=num;i++)
{
for(j=0;j<=k;j++)
{
arr[j]=arr[j]*i+carry;
carry=arr[j]/10;
arr[j]=arr[j]%10;
}
while(carry)
{
k++;
arr[k]=carry%10;
carry/=10;
}
}
for(i=k;i>=0;i--)//doubt
{
printf("%d",arr[i]);
}
printf("\n");
}
return 0;
}
我想在反向显示数组时有一个错误,但是当我更改条件时,即 for(i=0;i
【问题讨论】:
-
j<=k:k未初始化。 -
你在哪里初始化
k?由于您从不这样做,因此它的值将是 indeterminate 并且使用它会导致 未定义的行为。