Выбор элементов из n входов в c без использования массивов - PullRequest
0 голосов
/ 23 февраля 2020

Учитывая последовательность целых чисел в качестве входных данных, мне нужно иметь возможность выбрать определенные c целые числа последовательности, чтобы я мог выполнять различные арифметические c операции между ними.

Например, учитывая это На входе я хочу знать сумму третьего и последнего целого числа последовательности. РЕДАКТИРОВАТЬ: в примере это будет сумма 7 и 9

3

1

7

4

9

Я должен следовать условию, чтобы я не использовал массивы, поэтому я не могу дать каждому целому числу индекс. Также я не могу заранее знать, сколько будет целых чисел в последовательности, поэтому я не могу создать вход, определяющий количество целых чисел.

Чтобы прочитать входные данные, которые я подумал об использовании этого l oop с условием scanf:

 while (scanf("%d", &i) == 1);

Я застрял в том, как выбрать третье и последнее целые числа; если бы это было что-то вроде нахождения суммы нечетных целых чисел, я бы просто поставил условие, подобное этому:

if (i%2 != 0)
{
   sum = sum + i;
   i++;
}

Большинство примеров решается с использованием for lopp, но у них либо объявлено количество входов, либо входов просто последовательные целые числа. Любое предложение о том, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 23 февраля 2020

Вы можете смешать простое для l oop с вашим условием scanf, чтобы вы могли связать индекс с каждым номером и запомнить числа, необходимые для вычисления вашей операции (включая последнюю).

Вот пример :

int i, value;
int sum = 0;
int lastValue = 0;
for(i=1 ; scanf("%d", &value) == 1 ; ++i)
{
    if(i == 3) /* select the third element */
        sum += value;
    lastValue = value; /* memorize the last element so far to compute it later */
}
sum += lastValue; /* assume that there is at least one value in the sequence */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...