微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我正在做一个阶乘 c# 程序,但是在第二次尝试之后,它开始计算错误

如何解决我正在做一个阶乘 c# 程序,但是在第二次尝试之后,它开始计算错误

int num,i,fatorial = 1;
char resposta;
    
do
{    
    Console.WriteLine("Informe um numero e veja o seu fatorial: ");
    num = int.Parse(Console.ReadLine());

    for(i=1; i <= num; i++)
    {
        fatorial *= i;
    }
    Console.WriteLine("O fatorial de "+num+" é "+fatorial);
    Console.WriteLine("Calcular outro número (s/n)?");
    resposta = char.Parse(Console.ReadLine());
} while(resposta !='n');

第一次运行正常,但如果再试一次,它就会计算错误

解决方法

您需要在每个循环中重置 factorial,否则它会保存上一个循环的值。

添加:

do
    {    
        factorial = 1; // re-initialize every loop
        Console.WriteLine("Informe um numero e veja o seu fatorial: ");
        num = int.Parse(Console.ReadLine());
,

您不会在循环中重新初始化 factorial,因此在第二次(和后续)迭代中,您将同时拖动先前的计算。当您将 factorial = 1 重新初始化为用户输入时重新初始化 num,您应该没问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。