Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 查找仅包含';0';矩阵中的元素?_C++_Optimization_Matrix_While Loop_Sentinel - Fatal编程技术网

C++ 查找仅包含';0';矩阵中的元素?

C++ 查找仅包含';0';矩阵中的元素?,c++,optimization,matrix,while-loop,sentinel,C++,Optimization,Matrix,While Loop,Sentinel,我不会把它数字化:我有一个编程任务的优化作业,我需要确认我的解决方案是否正确 下一个任务是:得到一个矩阵,该矩阵具有随机数目的行,并且每行具有不同的长度。我们得到的矩阵中有哨兵:每行末尾有一个-1值。矩阵的最后一行以-1值开始。矩阵的每隔一个值是正整数和0 任务是找到第一行,该行只有0个元素(不包括sentinel),并将其写入-同时,我只需使用2个变量,一个while循环,以及其中的一个条件。条件可能会导致写入 总体而言,代码必须具有如下一般形式(不包括矩阵的定义: //'sor' means

我不会把它数字化:我有一个编程任务的优化作业,我需要确认我的解决方案是否正确

下一个任务是:得到一个矩阵,该矩阵具有随机数目的行,并且每行具有不同的长度。我们得到的矩阵中有哨兵:每行末尾有一个-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;   
}
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
的值决定了我们是否找到了一个有效的行,或者我们找不到有效的行,我们会因为到达矩阵的末尾而退出

我用随机矩阵测试了它,但我仍然不确定,所以我需要你的确认


我做得好吗?

您是否尝试在矩阵上测试它,其中唯一有效的行是最后一行?例如

[-1;
-[10-1]

或许

[1-1;
-[10-1]


如果每一行都必须有除-1以外的元素。

我想,如果任何行的第一个元素是-1,那么它随后出现什么并不重要,因为
元素[x][0]=-1
是矩阵末尾的标记。当我得到任务时,最后一行的数字是最后一个有效行的数字+1。我认为可能误解了您的问题。最后一行是否只包含一个元素,而该元素是-1?如果是,那么我认为您的代码是正确的。我仍然认为-1后面的内容无关紧要.至少,这会使问题变得更复杂,更难解决,至少对于初级优化来说太难了。事实上不是这样。你只需要添加一个额外的if语句就可以了。但我认为最后一行只包含-1的解释是为了向你表明你已经达到了最后一行,可能是正确的。是的,从那以后,我仔细考虑了一下,它实际上看起来并没有那么难。然而,退出循环的条件必须改变,也许这就是它让事情变得更难的原因。