在降序排序数组的数字使用while循环
47个视图(30天)
显示旧的评论
我写的代码在降序排序数字但我的代码未能这样做(其实我是失败lol)。
例子:考虑给定数组x =[4 6 9 2 5 0 1]我要输出y (9 6 5 4 2 1 0)。
更重要的是,我的想法是这样的seq -
1)找到最大数量从一个给定的数组
2)然后使用find函数来检测国际防务展的最大元素
3)然后从数组中删除的最大数量,减少了数组长度
但是,我成功地未能做什么我在寻找。我决心只使用while循环执行该代码(没有其他明显的e。g函数和for循环)
谁能告诉我哪里做错了,而我正在写代码?我的意思是错误代码的一部分。
我将很高兴如果有专家给我一个建议或建议正确的代码。
函数y = sortingnumsindes (x)
y = [];
而(元素个数(x) > 0)
y = max (x);
p =找到(x = = y);
x (p) = [];
结束
y = x;
结束
0评论
接受的答案
大卫•希尔
2020年5月4日
函数y = sortingnumsindes (x)
y = [];
而(元素个数(x) > 0)
m = max (x);
p =找到(x = = m, 1);%需要,1处理任何副本
x (p) = [];
y = [y、m];%需要每个后续元素存储在数组中
结束
结束
6个评论
Guillaume
2020年5月4日
作为我的评论似乎有点争议我最初写的是一些额外的原因:
有几个步骤来编写代码。第一个找出算法,已经有一个问题写算法,这是缺少一个步骤,最大附加到输出。然后就是将算法转化为代码,这里有几个问题。还有部分调试和理解这是哪里出了错。在我看来,为了得到更好的编码需要自己经历了所有这些步骤。这里特别是悉德需要明白,y是用于两个不同的东西,他从未穿过失踪的一步存储被删除的元素。
所以,我害怕
“明确观点,不明白里面发生什么”
只能通过一个试错的过程,而不是解决方案直接交给您。