如何将2d数组的特定列归零

时间:2016-03-31 16:30:04

标签: c arrays multidimensional-array adjacency-matrix

假设我有一个100x100的特定二维数组,如此

我正在实现一个邻接矩阵,因此我希望能够将特定的列和行(在这种情况下是相同的列和行)归零,归零行非常简单但我真的无法理解我会选择专栏。

例如,将邻接矩阵的第二个元素归零:

enter image description here

3 个答案:

答案 0 :(得分:1)

int column=1; //in your example
int row=1;//in your example


//for rows
for(int i = 0; i<numberofrows; i++)
{
  array[i][column]=0;
}

//for columns
for(int i = 0; i<numberofcolumns; i++)
{
  array[row][i]=0;
}

答案 1 :(得分:0)

例如,您可以通过以下方式执行此操作

for ( size_t i = 0; i < 3; i++ )
{
    a[1][i] = 0;
    a[i][1] = 0;
}

等于i 1的{​​{1}}将被设置为零两次。然而,它并不重要。如果您愿意,可以在这种情况下使用if语句。

例如

a[1][1]

这是一个示范程序

for ( size_t i = 0; i < 3; i++ )
{
    a[1][i] = 0;
    if ( i != 1 ) a[i][1] = 0;
}

程序输出

#include <stdio.h>

#define N1   3

int main( void )
{
    int a[N1][N1] =
    {
        { 3,  2,  5 },
        { 6,  4,  2 },
        { 1, 61, 45 }
    };        

    for ( size_t i = 0; i < N1; i++ )
    {
        for ( size_t j = 0; j < N1; j++ ) printf( "%2d ", a[i][j] );
        printf( "\n" );
    }

    size_t row = 1;
    size_t col = 1;

    for ( size_t i = 0; i < N1; i++ )
    {
        a[row][i] = 0;
        a[i][col] = 0;
    }

    printf( "\n" );

    for ( size_t i = 0; i < N1; i++ )
    {
        for ( size_t j = 0; j < N1; j++ ) printf( "%2d ", a[i][j] );
        printf( "\n" );
    }
}

答案 2 :(得分:0)

如果Mat是一个方阵,那就这么简单:

loaders: [{
            test: /\.scss$/,
            loader: "style-loader!raw-loader!sass-loader"
                + "!baggage?"+ path.resolve(__dirname, "./src/_config/_global.scss")
        }]

当你的垫子有奇/偶大小时,请注意!当尺寸变得均匀时,我想你需要2列和2行!那么你应该这样做:

在此图片中按照以下示例进行操作:

enter image description here