Entrada
Na maratona os dados são lidos da entrada padrão (e não do arquivo) logo não é necessário manipular arquivos.
A leitura padrão da linguagem C é o scanf() e é este comando que iremos utilizar na maioria dos códigos (procuramos não utilizar o cin do C++ pois ele é bem mais lento que o scanf()).
O scanf() em caso de sucesso na leitura retornará o número de parâmetros lidos, caso ele não consiga ler irá retornar EOF (end of file).
Quando o problema tiver apenas um caso de teste a leitura é feita como em qualquer outro programa porém na maior parte dos problemas da maratona são apresentados vários casos de teste, que chamamos de instâncias.
Exemplo de Entrada:
#include
int main(){
int a,b;
//ps: o scanf retorna o número de parâmetros lidos
//quando a e b for 0 vai dar falso
while (scanf(“%d %d”,&a,&b) && (a!=0 || b!=0){
//realiza a soma e imprimir resultado
}
}
Obs1: O valor inteiro 0 (zero) representa FALSO e qualquer outro inteiro representa VERDADEIRO por isso podemos colocar o scanf dentro do while pois ele sempre irá ler dois inteiros e retornar 2, logo 2 é verdadeiro e apenas dependerá da segunda condição (a!=0 || b!=0) exatamente o que desejamos.
Obs2: Existem várias formas de fazer essa leitura.
Uso avançado do scanf
Usando o scanf para ler uma linha inteira.
scanf("%[^\n]",linha); //linha é uma cadeia de caracteres
Deste modo ele lerá enquanto o caracter não for ‘\n’ (indica fim de linha) e guardará na cadeia de caracteres linha.
Do mesmo modo para ler até um hifen (ou qualquer outro caracter) pode-se usar
scanf(“%[^-]”,linha);
Tipos de Variáveis e seu padrão de Leitura
Saída
Na maratona os dados são escritos na saída padrão (e não no arquivo) logo não é necessário manipular arquivos.
A escrita padrão da linguagem C é o printf() e é este comando que iremos utilizar na maioria dos códigos (procuramos não utilizar o cout do C++ pois ele é bem mais lento que o printf()).
Exemplo de Saída:
#include
int main(){
int a,b;
while (scanf(“%d %d”,&a,&b) && (a!=0 || b!=0){
printf(“%d\n”,a+b); //imprime um inteiro e pula 1 linha
}
}
Tipos de Variáveis e seu padrão de Escrita
Aprendeu? Então faça esse problema do spoj para fixar!