假设我有一个100x100的特定二维数组,如此
我正在实现一个邻接矩阵,因此我希望能够将特定的列和行(在这种情况下是相同的列和行)归零,归零行非常简单但我真的无法理解我会选择专栏。
例如,将邻接矩阵的第二个元素归零:
答案 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)