我想將二維數組傳遞給函數。我寫了3個函數:將二維數組傳遞給函數:零值和打印問題
- 使所有值== 0;
- 以期望值實現它;
- print matrix;
我的輸出看起來是錯誤的。我檢查了mapZero工作正常的調試mod(它實現了所有行和列的零,但是)。第一個矩陣必須只包含零值,第二個矩陣實現(順便說一下,爲什麼我在mapInit中的註釋代碼無法建立?看起來我做得對)。第三個矩陣是用我的算法實現的一個新矩陣(我正在用波浪算法來找到到最後點的最短路徑)。
我不能得到如何以及在何處,我應該使用指針(也許問題是嗎?),以及如何通過WIDTH和HEIGHT用正確的方式。
int mapZero(int * map[WIDTH][WIDTH])
{
for (int i = 0; i < WIDTH; ++i)
{
for (int j = 0; j < HEIGHT; ++j)
{
map[i][j] = 0;
}
}
}
int mapPrint(int map[WIDTH][HEIGHT])
{
for (int i = 0; i < WIDTH; ++i)
{
for (int j = 0; j < HEIGHT; ++j)
{
printf("%2d ", map[i][j]);
}
printf("\n\n");
}
printf("\n");
return 0;
}
int mapInit(int * map[WIDTH][WIDTH])
{
/*
map[WIDTH][WIDTH] =
{
{ 127,1,1,1,1,1,1, 1 },
{ 0, 1,0,0,0,1,1, 1 },
{ 1, 1,1,1,0,0,0, 1 },
{ 1, 0,0,1,0,0,0, 1 },
{ 1, 0,1,1,0,0,1, 1 },
{ 1, 1,1,1,1,1,1, 1 },
{ 0, 1,0,0,1,0,1, 1 },
{ 1, 1,1,1,1,1,1,255 },
};
*/
for (int i = 0; i < WIDTH; ++i)
{
for (int j = 0; j < HEIGHT; ++j)
{
map[i][j] = 0;
}
}
for (int j = 0; j < WIDTH; ++j)
{
map[0][j] = 1;
map[7][j] = 1;
map[j][7] = 1;
map[5][j] = 1;
}
for (int j = 2; j < 5; ++j)
{
map[j][0] = 1;
}
map[1][1] = 1; map[1][5] = 1; map[1][6] = 1;
map[2][1] = 1; map[2][2] = 1; map[2][3] = 1;
map[3][3] = 1;
map[4][2] = 1; map[4][3] = 1; map[4][6] = 1;
map[6][1] = 1; map[6][4] = 1; map[6][6] = 1; map[6][7] = 1;
map[0][0] = 22;
map[7][7] = 99;
return 0;
}
我的main.c:
#include <stdbool.h>
#include <stdlib.h>
#include <stdio.h>
#define WIDTH 8
#define HEIGHT 8
int mapZero(int * map[WIDTH][WIDTH]);
int mapPrint(int map[WIDTH][HEIGHT]);
int mapInit(int * map[WIDTH][WIDTH]);
int main(int argc, char * argv[])
{
short int map[WIDTH][HEIGHT];
short int visited[WIDTH][HEIGHT];
mapZero(visited);
mapZero(map);
mapInit(map, WIDTH, HEIGHT);
printf("Matrix of zeroed-visited cells:\n\n");
mapPrint(visited, WIDTH, HEIGHT);
printf("Matrix of the map:\n\n");
mapPrint(map, WIDTH, HEIGHT);
return 0;
}
任何你忽略編譯器警告的原因?在詢問調試問題之前,您需要啓用建議的警告並解決它們。並閱讀[問]。 – Olaf
請不要破壞你的帖子。一旦你發佈了一個問題,你已經將內容授權給了Stack Overflow社區(在CC-by-SA許可下)。如果您想要從您的帳戶中取消關聯此信息,請參閱[關於解除關聯請求的正確途徑?](http://meta.stackoverflow。COM /問題/ 323395 /什麼,是最合適的路線換一個解離請求)。 – Bugs