% 猜数游戏
clear;
x=round(100*rand); % 由计算机随机产生一个[0,100]的整数
n=7; % 有7次机会
test=1;
disp(['欢迎参加猜数游戏!你共有',num2str(n),'次机会']);
disp('请输入一个0到100之间的一个整数');
for k=1:n
guess=input('Enter your guess: ');
if guess < x
disp('Low');
elseif guess>x
disp('high');
else
disp('You win!');
test=0;
break;
end
n=n-1;
disp(['你还有',num2str(n),'次机会!']);
end
if test==1
disp('You lost!')
end
我单步调试过了是正确的,可是for循环是从1 到n 的,而n的值再循环里改变了,就会出现比k小的情况应该退出循环的啊,求大神,谢!!!!
求大神急!!!特别简单的matlab小程序 为什么这个程序是正确的,k的for 循环里n的值改变了啊,为什么运行
答案:2 悬赏:60 手机版
解决时间 2021-03-16 09:39
- 提问者网友:不要迷恋哥
- 2021-03-15 13:34
最佳答案
- 五星知识达人网友:街头电车
- 2021-03-15 14:44
看了看,你的程序没什么大问题,虽然在每次循环里,n的值会改变
但却不会影响循环的进行,直到倒数第二次时,n变为1,说明后面只能还
进行一次循环,但这会产生一个问题,就是显示:你还有0次机会
这时循环就自动结束了,因为n=0了。
但却不会影响循环的进行,直到倒数第二次时,n变为1,说明后面只能还
进行一次循环,但这会产生一个问题,就是显示:你还有0次机会
这时循环就自动结束了,因为n=0了。
全部回答
- 1楼网友:像个废品
- 2021-03-15 15:26
%% 给一个思路,没有验证结果,自己验证一下
a = randint(30001,10,[0 100]); % 用自己数据为 a
l = diff(a(:,2))==0;
l0 = [l; false];
l1 = [false; l];
a(l0,6) = ((a(l0,4)-a(l1,4)).^2+(a(l0,5)-a(l1,5)).^2).^0.5;
a(l0,7) = a(l0,3);
a(l0,8) = a(l1,3);
a(~l0,6) = 0;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯