我不会伪装它:我有一个编程任务的优化作业,我需要确认我的解决方案是正确的。
下一个任务是:你得到一个有随机行数的矩阵,每行有不同的长度。我们得到的矩阵中有标记:每行末尾都有一个 -1 值。矩阵的最后一行以 -1 值开始。矩阵的每隔一个值都是正整数和 0。
任务是找到第一行,它只有 0 个元素(不包括哨兵,并写下它 - 另外,我必须只使用 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;
}
代码跳过无效的列,直到到达末尾;或者如果它可以到达任何行的末尾,它就会退出 - 但只有当它的所有元素都为 0 时它才能这样做。
如果找到 -1,它肯定会退出,但是 的值oszlop
决定了我们是否找到了有效的行,或者我们不能,并且我们因为到达矩阵的末尾而退出。
我用随机矩阵对其进行了测试,但我仍然不确定,所以我需要你的确认。
我把任务做好了吗?