永发信息网

求大神急!!!特别简单的matlab小程序 为什么这个程序是正确的,k的for 循环里n的值改变了啊,为什么运行

答案:2  悬赏:60  手机版
解决时间 2021-03-16 09:39
% 猜数游戏
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小的情况应该退出循环的啊,求大神,谢!!!!
最佳答案
看了看,你的程序没什么大问题,虽然在每次循环里,n的值会改变
但却不会影响循环的进行,直到倒数第二次时,n变为1,说明后面只能还
进行一次循环,但这会产生一个问题,就是显示:你还有0次机会
这时循环就自动结束了,因为n=0了。
全部回答
%% 给一个思路,没有验证结果,自己验证一下 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;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
局域网内所有电脑都不能上网是怎么回事?
关于7天酒店退房免查房
NFTS制式的硬盘如何格式化装系统
和男朋友分手表示歉意的一道菜是什么
成人教育 毕业条件
LOL:假如英雄的被动效果十倍于当下,谁最强
如何安慰没有获奖的小学生
参加了城镇职工医疗保险,得了意外伤之后报销
自动档车停车不熄火挂N档对变速箱有影响吗?
请问liederstrom 是什么牌子的钢琴
凯喜网络会所我想知道这个在什么地方
武当太极二十八式与三十八式有什么不同?
777游戏有什么技巧吗?
一本书共100页,从前面数第30页是一幅漂亮的
野兽骑行公路自行车怎么充电
推荐资讯
护士夜班的时间安排表
开本 787*1092 1/16 比十六开大么?
男朋友每月工资比我低,这样会长久吗?女生是
太原现在汽车保养哪家在做的好?相对收费比较
临邛古城在什么地方啊,我要过去处理事情
星之卡比变身时怎么变成其他形态
请问什么金属会自己自然发热,它是什么金属元
精灵梦叶罗丽另一个自己伴奏是什么歌曲
黑魂3任务选了女性还能不能和安里结婚
天兴加油站在什么地方啊,我要过去处理事情
番茄炒蛋和韭菜炒蛋哪样营养价值高?
从前,有两个饥饿的人得到一位长者的恩赐:一根
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?