weixin_64417453 2022-09-11 15:43 采纳率: 66.7%
浏览 33

请问一下这个代码有什么问题呀?

输入一个非负整数n,求n!。


#include<stdio.h>
int main() 
{
    int n;
    while(scanf("%d",&n)!=EOF){
        if(n==0)
            printf("1\n");
        else{
            int a[10000]={1};
            int i,j,s;
            int c=0,m=1;
            for(i=2;i<=n;i++) {
                for(j=0;j<m;j++) {
                    s=a[j]*i+c;
                    a[j]=s%10;
                    c=s/10;
                }
                while(c){
                    a[m]=c%10;
                    m++;
                    c=0;
                }
            }
            for(i=m-1;i>=0;i--)
                printf("%d",a[i]);
            printf("\n");
        }
    }
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-09-11 16:02
    关注

    a[j]=s%10;
    改为
    a[j]+=s%10;

    评论

报告相同问题?

问题事件

  • 创建了问题 9月11日

悬赏问题

  • ¥20 如何通过sentry收集上传Android ndk的崩溃?
  • ¥30 有关数值生成的稳健性探讨
  • ¥20 关于C/C++图形界面设计问题
  • ¥15 QT+Gstreamer框架开发视频采集,无法将waylandsink视频绑定qt窗口
  • ¥15 vs2010开发 WFP(windows filtering platform)异常
  • ¥30 8*8*25的矩阵和1*8*25的矩阵相乘
  • ¥15 Ubuntu20.04主机有两个网口,如何配置将其中一个网口用来接入外网,另一个网口用来给其他设备上网
  • ¥15 ml307r-dl如何实现录音功能
  • ¥15 付费100元 悬赏iphone 15pm 链接watch s7 移动一号双终端 下载不了esim文件解决办法?
  • ¥60 云南移动网络无法访问网站,但联通电信可正常访问