Dúvidas quanto a alguns exercícios em C

Olá galera!

Estou tentando fazer um exercícios em C aqui, mas empaquei em algumas coisas.
Já garimpei no google mas não resolveu, acho que eu não estou entendendo o problema, socorro ):

Exercício 1

#include <stdio.h>
#include <stdlib.h>

/*
###################################################################################
	Cenário:
	Faça um programa que receba uma sequência de N números inteiros e realize a soma
	desses N valores.
	
	Entrada
	A entrada contém um inteiro N, 0 < N = 10000. Nas N linhas seguintes haverá um número
	inteiro em cada.

	Saída
	A saída consiste de um número inteiro representando a soma dos N valores recebidos na
	entrada. Apos a impressão do número pule uma linha
###################################################################################
*/

int main(int argc, char *argv[])
{
    int i, vetor[9], soma = 0;

	for(i=0;i<=9;i++){
		printf("Digite uma sequencia de dez valores inteiros\n\n");
		printf("%i valor:",i);
		scanf("%i", &vetor[i]);
		soma += vetor[i];
		system("CLS");
	}
		
	printf("\n%i\n",soma);
	
	system("PAUSE");	
	return 0;
	
}

Aqui está correto ou eu pensei errado?

Exercício 2

#include <stdio.h>
#include <stdlib.h>

/*
###################################################################################
	Cenário:
	Faça um programa que receba uma sequência indefinida de números inteiros e realize a
	soma desses valores.
	
	Entrada
	A entrada contém uma quantidade indefinida de números inteiros, sendo um em cada linha. A
	entrada termina com EOF.
	
	Saída
	A saída consiste de um número inteiro representando a soma de todos os valores recebidos
	na entrada. Após a impressão do número pule uma linha.
###################################################################################
*/

int main(int argc, char *argv[])
{
  
	system("PAUSE");	
	return 0;
}

“A entrada contém uma quantidade indefinida de números inteiros, sendo um em cada linha. A entrada termina com EOF”.

Como assim quantidade indefinida? tipo, eu vou fazer um lopping para pode adicionar x valores desejados? e a parte “entrada termina com EOF”, não sei nem o que significa isso, poderiam me explicar?

E tem o último que tem uma explicação sobre o que são números racionais e que eu não entendi absolutamente nada:
Exercício 3

Cenário:
Número racional é todo o número que pode ser representado por uma razão (ou fração) entre dois números inteiros. O conjunto dos números racionais (representado por Q):

Em outras palavras, o conjunto dos números racionais e formado por todos os quocientes de números inteiros a e b, em que b e não nulo. O uso da letra “Q” e derivado da palavra inglesa quotient, cujo significado e quociente, já que a forma de escrever um número racional e o quociente de dois números inteiros.

Faça um programa que defina um novo tipo de dado através de uma estrutura chamada tRacional, com os componentes inteiros a e b, conforme a definição anterior. Escreva as seguintes funções para operar sobre o novo tipo:

Entrada
A entrada consiste de várias linhas no seguinte formato: a b operação a b, onde: -10000 ≤ a
≤ 10000, 0 < b ≤ 10000. E operação será um dos seguintes caracteres: +, -, * ou /. A entrada
termina com EOF.

Saída
A saída consiste de várias linhas com o resultado da operação sobre os racionais. É
necessário reduzir a fração ao máximo. Após a impressão do último resultado quebre uma
linha.