C++怎么表示数组数值的下一位?

int main(int argc, char** argv) {
    Mat img = imread("1.png");

    for (int j = 0; j < img.cols; j++) {
        for (int i = 0; i < img.rows-1; i++) {        
            
            if ((img.at<Vec3b>(i , j )[0] == 255) && (img.at<Vec3b>(i+1, j)[0] == 0) &&                 //由白到黑的边界
                (img.at<Vec3b>(i , j )[1] == 255) && (img.at<Vec3b>(i+1, j)[1] == 0) &&
                (img.at<Vec3b>(i , j )[2] == 255) && (img.at<Vec3b>(i+1, j)[2] == 0)){  

                //cout << j << "," << i << endl;

                               
                int a[1000] = {  };                          
                a[j] = i;
                printf("a[%d]=%d\n", j, a[j]);
               
                //判断
                if ((a[j] < (a[j + 1] - 10)) || (a[j] > (a[j + 1] + 10)))//后一位比前一位大10以上或小10以上定义为差{
                    cout << a[j + 1];
                    cout << "数据不好,请重新采样!";                
                }

            }
    
        }
        //break;
    }
    return 0;
}

image.png

为什么a[j+1]全是0?a[j]=i的下一个数值怎么表示?“后一位比前一位大10以上或小10以上”怎么表示?

阅读 1.5k
1 个回答
问:为什么a[j+1]全是0?

答:肯定全是 0。每次进入内层循环 a都被重新定义,之后 a[j+1] 没被赋值

int a[1000] = {  };                          
a[j] = i;
问:a[j]=i的下一个数值怎么表示?

答:没有理解

问:后一位比前一位大10以上或小10以上

答:if ((a[j] < (a[j + 1] - 10)) || (a[j] > (a[j + 1] + 10))) 表达式是对的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题