Я думаю, ваша задача - найти решение, которое не использует массивы.
Для задачи 2 это довольно просто.Просто накапливайте входные данные и делите их на количество входов перед печатью.Например:
#include <stdio.h>
#include <stdlib.h>
int main()
{
float result = 0;
float f;
int n = 0;
printf("How many numbers?\n");
if (scanf("%d", &n) != 1) exit(1);
for (int i=0; i < n; ++i)
{
if (scanf("%f", &f) != 1) exit(1);
result += f;
}
result /= n;
printf("average is %f\n", result);
return 0;
}
Первая задача немного сложнее, но может быть решена с помощью рекурсии.Вот алгоритм в псевдокоде.
void foo(int n) // where n is the number of inputs remaining
{
if (n == 0) return; // no input remaining so just return
int input = getInput; // get next user input
foo(n - 1); // call recursive
print input; // print the input received above
}
и назовите его как
foo(5); // To get 5 inputs and print them in reverse order
Я оставлю для OP, чтобы превратить этот псевдокод в реальный код.