Я новичок в программировании, и я пытаюсь решить 929-номер Maze на судье UVA-онлайн, и я написал этот код, и он отлично работает в блоках кода, но когда я отправляю этот код на uva-online судья, он показывает Runtime error и я просто не могу понять, что я делаю неправильно.Как я могу определить, что не так с моим кодом, когда вывод правильный?
#include <stdio.h>
#include <stdlib.h>
int min(int x, int y);
int minCost(int **cost, int m, int n) {
int i, j;
int tc[m][n];
tc[0][0] = cost[0][0];
for (i = 1; i < m; i++) {
tc[i][0] = tc[i - 1][0] + cost[i][0];
}
for (j = 1; j < n; j++) {
tc[0][j] = tc[0][j - 1] + cost[0][j];
}
for (i = 1; i < m; i++) {
for (j = 1; j < n; j++) {
tc[i][j] = min(tc[i - 1][j], tc[i][j - 1]) + cost[i][j];
}
}
return tc[m - 1][n - 1];
}
int min(int x, int y) {
if (x < y)
return x;
else
return y;
}
int main() {
int t, a, b, M, N, k;
scanf("%d", &t);
while (t--) {
scanf("%d", &M);
scanf("%d", &N);
int **c = (int **)malloc(sizeof(int*) * M);
for (k = 0; k < N; k++)
*(c + k) = (int *)malloc(sizeof(int) * M);
for (a = 0; a < M; a++) {
for (b = 0; b < N; b++) {
scanf("%d", &c[a][b]);
}
}
int res = minCost(c, M, N);
printf("%d", res);
}
return 0;
}
вход:
2
4
5
0 3 1 2 9
7 3 4 9 9
1 7 5 5 3
2 3 4 2 5
1
6
0 1 2 3 4 5
выход:
24
15
показать нам параметры проблемы – coderredoc
'for (k = 0; k 'for (k = 0; k
BLUEPIXY
' int tc [m] [n]; 'может быть большим на стек. – BLUEPIXY