我不会去了解它:我为编程任务得到了一个优化作业,我需要确认我的解决方案是正确的。
任务是下一个:你得到一个随机行数的矩阵,每行的长度不同。我们得到的矩阵中有标记:每行末尾有一个-1值。矩阵的最后一行以-1值开头。矩阵的每个其他值都是正整数和0。
任务是找到第一行,它只有0个元素(不包括sentinel,然后写它 - 同样,我只需要使用2个变量,一个while
循环,并且其中包含一个条件。写作可能会在条件下发生。
总的来说,代码必须具有这样的一般形式(不包括矩阵的定义:
//'sor' means row, 'oszlop' means coloumn
int sor, oszlop;
while(){
if(){
}else{
};
}
if (){
cout <<"We couldn't find a row with only 0 elements."<<end;
}else{
cout <<"We could, and this is:"<<end;
}
这是我的代码(只有main()
内的部分,也排除了矩阵的定义):
int sor=0, oszlop=0;
while (x[sor][oszlop]!=-1){
if (x[sor][oszlop]==0){
++oszlop;
}else{
++sor;
oszlop=0;
}
}
if (oszlop==0){
cout <<"We couldn't find a row with only 0 elements."<<end;
}else{
cout <<"We could, and this is:"<<end;
}
代码跳过无效的coloumns,直到它结束;或者如果它可以到达任何行的末尾则退出 - 但只有当它的所有元素都为0时它才能执行。
在找到-1时肯定会退出,但是oszlop
的值决定了,我们是否找到了有效行,或者我们不能,并且因为到达矩阵的末尾而退出。< / p>
我用随机矩阵测试了它,但我仍然不确定,所以我需要你的确认。
我做得好吗?
答案 0 :(得分:0)
您是否尝试在矩阵上进行测试,其中唯一有效的行是最后一行?比如说,
[ - 1;
-1 0 -1]
或者
[1 -1;
-1 0 -1]
如果每行必须有一些除-1以外的元素。