Я изучаю C самостоятельно и делаю несколько упражнений.Следующий код читает массив целых чисел от пользователя.Целые числа распечатываются, когда пользователь вводит «0» или когда массив заполнен.Теперь проблема в выходе.Когда я набираю «0» после того, как я набрал 3 цифры, например, 1 2 3, получается следующее: 1 2 3 -858993460 -858993460Я не уверен, почему я получаю значение «-858993460», но я уже нашел решение, чтобы избежать его.Теперь мой вопрос заключается в том, что означают значения, и если есть более разумное решение, чем мое, которое представлено ниже в виде комментариев.
#include <stdio.h>
#include <string.h>
#define arraylength 5
int main ()
{
//const int arraylength = 21; //alternative possibility to declare a constant
int input [arraylength] ;
int temp = 0;
//int imax = 0;
printf("Please type in a your digits: ");
for (int i = 0; i < arraylength; i++)
{
scanf("%d", &temp);
if ( temp !=0)
{
input[i]= temp;
//imax= i;
}
else
{
//imax= i;
break;
}
if (i < arraylength-1)
printf("Next: ");
}
for (int i =0; i < arraylength; i++ ) // switch arraylength with imax
{
printf("%d", input[i]);
}
getchar();
getchar();
getchar();
}