的特定列可以說我有100×100的特定二維數組,像這樣如何零二維數組
我採取鄰接矩陣,因此我希望能夠爲零的特定列和行(在這種情況下相同的列和行),清零行非常簡單,但我不能真正理解我將如何處理列。
例如零鄰接矩陣的第二個元素:
的特定列可以說我有100×100的特定二維數組,像這樣如何零二維數組
我採取鄰接矩陣,因此我希望能夠爲零的特定列和行(在這種情況下相同的列和行),清零行非常簡單,但我不能真正理解我將如何處理列。
例如零鄰接矩陣的第二個元素:
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;
}
愚蠢的我,這是有史以來最容易的事情。萬分感謝! – spacing
例如,你可以做到這一點通過以下方式
for (size_t i = 0; i < 3; i++)
{
a[1][i] = 0;
a[i][1] = 0;
}
對於i
等於1
a[1][1]
將被設置爲零兩次。然而這並不重要。如果你想要,你可以使用if語句來處理這種情況。
例如
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");
}
}
程序輸出是
3 2 5
6 4 2
1 61 45
3 0 5
0 0 0
1 0 45
'的for(int i = 0; I
uSeemSurprised
什麼?交換用於訪問數組的索引。 –