-3
我想用零填充第2和第4列。到目前爲止,我已經實現了這一目標,但我無法弄清楚爲什麼。主要我試圖用零填充整個陣列。在random1中,我嘗試用隨機數填充特定單元格。我用for (j=0;j<25;j=j+2)
爲了填充每個第二列的隨機數,但還沒有實現它。誰能幫忙?提前致謝!如何填充C中的多維數組中的特定列?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//int random1 (int);
int random1 (int b[5][5])
{
int i,j;
int *onedim = (int *)b;
srand(time(NULL));
for (j = 0; j < 25; j = j + 2)
onedim[j] = rand() % 19 - 9;
for (i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
{
printf("%d\t", b[i][j]);
}
printf("\n");
}
return 0;
}
int main (int argc, char **argv)
{
int i, j;
int a[5][5];
for(i = 0; i < 5; i++)
for(j = 0; j < 5; j++)
{
a[i][j] = 0;
}
random1(a);
return(EXIT_SUCCESS);
}
你得到的結果是什麼?似乎爲我工作(我用'444444'替換了隨機,看得清楚 –
你對'int *'的轉換調用了未定義的行爲。爲什麼不使用2D索引?並且適當地格式化這個混亂,它是新的不可讀的。 – Olaf
@Olaf:我不這麼說,與指針數組相反,2D數組是連續的,鑄造成int *'是可以的 –