Если бы я мог сделать одно предложение, он бы изменил все целочисленные массивы на целые. Это решит все ваши проблемы. Однако, если ваше назначение требует использования целочисленных массивов, следуйте приведенному ниже коду.
В настоящее время вы устанавливаете только первый элемент temp_pin, равный пользовательскому вводу. Строка scanf(" %d", &temp_pin);
фактически сохраняет целое число в temp_pin[0]
.
Поскольку размер вывода равен 4, вам нужно прочитать 4 отдельных целых числа для хранения в массиве. Я бы предложил использовать цикл for, который может устанавливать значения temp_pin[0], temp_pin[1], temp_pin[2], temp_pin[3]
Логически, я бы также предложил проверять ошибки каждого целого числа, поскольку целое число может быть от -32 768 до 32 767. В настоящее время целочисленный массив с элементами 3300,55,12,15
будет правильным пином.
Значение, которое вы задаете в этой строке printf(" %d", temp_pin);
, не является случайной величиной. Это адрес временного штифта. Чтобы напечатать значения, хранящиеся в temp_pin, вам нужно будет пройтись по каждому элементу в массиве и распечатать его по отдельности.
Для вашего оператора сравнения if (temp_pin==pin)
это никогда не приведет к истине, так как сравнивает адреса. Опять же, правильным решением для этого было бы выполнить итерацию по обоим спискам одновременно и сравнить каждый элемент.