我有一个作业,要求你输入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循环转变为一段时间? 有人知道吗?谢谢!
答案 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 operators和conversion characters来控制输出的格式。