Это моё решение, которое включает в себя несколько хороших практик, это настройка вашего кода:
1) вы хотите, чтобы ваши определения были вне функции (или основной функции), чтобы вы могли использовать одну и ту же константу во всей программе;
2) любая функция, имеющая тип возврата (например, int main), должна возвращать что-то в конце, поэтому вы должны иметь «return 0» в конце вашей основной функции;
3) часть do-while будет гарантировать, что ваш фрагмент кода будет выполнен один раз до проверки условия;
4) numbers[numbersEntered++] = number;
присвоит «numbers [numbersEntered]» значение «number», а затем увеличит «numbersEntered» на единицу; Это должно уменьшить количество кода, который вы должны написать:);
Надеюсь, это помогло, и если у вас есть еще вопросы, я надеюсь, что смогу ответить на них:).
#define ARRAY_LENGTH 10
int main()
{
int numbers[ARRAY_LENGTH];
int numbersEntered = 0;
for (int i = 0; i < ARRAY_LENGTH; i++)
numbers[i] = 0;
int number = 0;
do
{
printf("Enter an integer; 0 to quit: ");
scanf_s("%d", &number);
if (number == 0)
break;
numbers[numbersEntered++] = number;
} while (number != 0 && numbersEntered < ARRAY_LENGTH);
if (numbersEntered > 0)
{
for (int i = numbersEntered - 1; i >= 0; i--)
printf("index %d -> %d\n", i, numbers[i]);
}
return 0;
}