我如何将其变成一个重要的声明?

时间:2014-10-05 13:31:28

标签: matlab

我有一个作业,要求你输入1到25之间的数字,做一个数字的事实,然后问你是否已经完成,如果没有,它会重新启动循环,你会做一个新的事实。

我一直在研究它的代码,我让它工作,直到最后一步。我为1到25之间的数字做了一个while循环,但是为一个for循环的for循环。当我试图将两者结合起来时,它不起作用并吐出错误。

clear;
clc;
alldone = 'n';
fact = 1;
num = input('Input a number between 1 and 25: ');
    while (num < 1)||(num > 25);
       num = input('\n That is not between 1 and 25, please try again: ');
    for i=num:-1:2;
    fact = fact * i;
    fprintf('The factoral of %g is %g',num,fact);
    end
    alldone = input('Are you done? Type Y for yes: ', 's')
end

这就是我所做的,我不知道如何将for循环转变为一段时间? 有人知道吗?谢谢!

1 个答案:

答案 0 :(得分:1)

这不是解决问题的最有效方法,但我尽量保持尽可能接近您的代码。

clear;
clc;
alldone = 'n';

while alldone ~= 'Y'
    fact = 1;
    num = input('Input a number between 1 and 25: ');

    while (num < 1)||(num > 25);
        num = input('\n That is not between 1 and 25, please try again: ');
    end

    for i=num:-1:2;
        fact = fact * i;
    end

    fprintf('The factoral of %g is %g. \n', num, fact);
    alldone = input('Are you done? Type Y for yes: ', 's');
end

由于这是某种功课,我不会解释我对你的代码做的小编辑,把它作为练习给你:)当然你可能会问,如果你发现它不清楚。祝你好运!

一点建议:使用适当的缩进!

为了回答OP 的一点点补充:可以使用formatting operatorsconversion characters来控制输出的格式。