如何解决我正在做一个阶乘 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 举报,一经查实,本站将立刻删除。