int highest[0][0]; //to find the highest, array from 0 value.
int lowest[0][0]; //to find the lowest, takes the highest value and then compare, if its lower than the current value of the array, it takes its value
эти два массива позволяют содержать 0 элементов, размеры равны 0 (обратите внимание, что ISO C запрещает массив нулевого размера)
так в
highest[0][0]=zero;
вы пишете из массива, и, как и везде, после того, как у вас есть доступ к этим 2 массивам
почему вы не оценили их как массив ? Я говорю, что из-за lowest[i][j]
в другом месте вашей программы даже это кажется странным
если я забуду проблему с размерностью этих двух векторов, в
lowest[0][0]==highest[0][0];
это утверждение ничего не делает, может быть, вы хотели
lowest[0][0]=highest[0][0];
? даже это кажется странным
если я забуду проблему с размерностью этих двух векторов, в
if(array[i][j] < lowest[i][j])
вы никогда не пишете в нижнем, кроме [0][0]
, поэтому lowest[i][j]
не определено, кроме случаев, когда i и j равны 0
Вы вызываете fill_array
и highlow
в main , пока они не объявлены / не определены, поскольку они определены после main , компилятор будет использовать объявление по умолчанию из ваших вызовов , это опасно, переместите их до main или объявите их до main
о размерах:
int a[10]
позволяет хранить 10 int, индексы 0 .. 9
int highest[2][3]
позволяет хранить 2 * 3 = 6 int, первый индекс равен 0..1, а второй 0..2
и т.д.
ваш массив позволяет хранить 0 * 0 = 0 элементов, вам нужен только доступ к highest[0][0]
, вам нужно определить их как int highest[1][1];
и то же самое для другого массива, но в таком случае, что представляет собой интерес? вам просто нужен int var, а не массив
Я рекомендую вам прочитать книгу / учебник по языку C
Я также призываю вас запрашивать высокий уровень предупреждения / ошибки при компиляции, например, если вы используете gcc do gcc -pedantic -Wall ....