Попробуйте это:
#include <stdio.h>
#include <stdlib.h>
int readNum()
{
int c;
int buffer = 0;
while ((c = getchar()) != EOF && c != '\n' && c >= '0' && c <= '9')
{
buffer = (buffer * 10) + (c - '0');
}
return buffer;
}
int *readNumsToArray()
{
size_t maxSize = 64;
size_t i = 0;
int *intArr = malloc(sizeof(*intArr) * maxSize);
int buffer;
while ((buffer = readNum()) != 0)
{
intArr[i++] = buffer;
if (i == maxSize)
{
maxSize *= 2;
intArr = realloc(intArr, sizeof *intArr * maxSize);
if (intArr == NULL) break;
}
}
if (buffer == 0)
intArr[i] = buffer;
return intArr;
}
int main()
{
int *nums = readNumsToArray();
size_t i = 0;
while(nums[i] != 0)
{
printf("%d\n", nums[i++]);
}
return 0;
}
Эта программа принимает число до 0. Отдельные номера читаются до в «\ п» гольца. Если вы хотите i-й элемент, вы можете просто ввести nums [i].
Что сигнализирует об окончании ввода? Я имею в виду, что компьютер не знает, что вход закончился. –
Конечно, это возможно. Просто создайте массив из 10000 элементов. Это соответствует требованиям, указанным в вашем вопросе. Но я полагаю, вы на самом деле пытаетесь спросить что-то еще. Если да, уточните свой вопрос, чтобы более четко описать свои входы (например, как пользователь указывает больше ввода) и любые другие ограничения вашей проблемы. – kaylum
Хорошо, немного более ясно. Скажем, я дам количество входов в начале. И вот, Я хочу объявить массив указанного «нет». входов? Потому что я хочу перейти к любому i-му элементу, я думаю, что Array - это выбор! Я не надеялся, что это возможно с указателями? –