第一个算阶乘,第二个找素数,都运行不出来,求助大佬

int main(int argc, char *argv[])
{ int a;
int c;
int i=1;
int jiecheng=1;
int d;
scanf("%d",c);
d=c;
int array[c];
while(i<=d)
{array[i]=c;
c--;
jiecheng=jiecheng*array[i];
i++;

 }
 printf("%d",jiecheng);

}

int main(int argc, char *argv[])
{int i,a,x;
scanf("%d",&x);
i=2;
a=x-1;
int array[a];
while(i<=x)
{array[i]=i;
i++;
}
int bu;
int cat=2;
int tiger=0;
while(i<=x)
{

while(cat<i)
{
bu=array[i]%cat;
{
if(bu==0)
tiger=tiger+1;}

cat++;
}
if(tiger==0)
{
printf("%d",array[i]);}
i++;
}
}

#include
main()
{
int a,n;
float m=1;
printf("input a number\n");
scanf("%d",&a);
if(a==1||a==0)
printf("output is 1\n");
else
{
for(n=2;n<=a;n++)
{  
m=m*n;
}
printf("output is %.0f\n",m);
}
}

input a number
1
output is 1

input a number
 20
output is 2432902023163674600

题主,刚入门吧,
int array[c],这里定义数组可不能用变量,或者你动态molloc一个数组
记得看报错信息。
而且应该用不到数组。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^