gpt4 book ai didi

c - 阶乘的尾随零,C 中的运行时错误?

转载 作者:太空宇宙 更新时间:2023-11-04 07:33:37 24 4
gpt4 key购买 nike

#include<stdio.h>

int main()
{
long ctr[100000],i;
float j;
long d[100000],T,h,o;

scanf("%ld",T);
printf("\n");

for(i=0; i<T; i++)
{
scanf("%ld",d[i]);
printf("\n");

for(h=d[i]; h<=0; h--)
{
j=h%10;
if(j==5)
{
ctr[i]++;
}
}
}
for(o=0; o<=i; o++)
{
printf("%ld\n",o);
}
return 0;
}

这是一个程序,用于查找用户输入的一组“T”数的阶乘的尾随零数。

我所做的是将每个数字除以 10 并测试数字是否为 5。然后我将数字减 1 直到它达到 0。每对 5*4 贡献一个尾随 0。

程序是否消耗过多内存或是否存在其他运行时错误?该程序出现运行时错误,有人可以帮忙吗?

最佳答案

一些观察:

  • long[100000]假设 long 需要 400,000 字节的堆栈如果 long 是普通的旧 32 位,800,000 字节是 64 位。您有两个这样的数组,这可能会使您的程序达到操作系统堆栈大小限制。
  • scanf()函数需要指针 指向存储它正在读取的值的位置。你不是在给它指针。正如 Paul R 在评论中所说。
  • 假设输入正数,循环for(h=d[i]; h<=0; h--)永远不会运行它的 body 。

关于c - 阶乘的尾随零,C 中的运行时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10847841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com