Exercício 1
Comentário: (digite uma frase para facilitar a busca)
scanf("cadeia formatadora", "var1", "var2", …);
O comando de leitura lê dados da entrada, e atribui os valores lidos às variáveis listadas no comando. A lista de variáveis deve ser separada por vírgulas, e o nome de cada variável deve ser colocado entre aspas duplas.
Exemplo:
scanf("%d%d", "nota1", "nota2");
O que ocorre na execução:
Podemos também ler valores reais (com casas decimais), usando o especificador %f na cadeia formatadora. Exemplo:
var x, y; scanf("%f%f", "x", "y");Não é necessário indicar os separadores (espaço em branco ou quebra de linha) entre os especificadores na cadeia formatadora do comando scanf. O sistema procura os separadores enquanto lê os valores da entrada. Ou seja, para ler uma entrada que consiste em três valores inteiros em duas linhas, como este exemplo:
10 100 200
você pode usar o código abaixo:
var x, y, z; scanf("%d%d%d", "x", "y", "z");Alternativamente, você pode especificar explicitamente os separadores na cadeia formatadora do comando scanf. No entanto, nesse caso é necessário que os especificadores reflitam exatamente o formato da entrada. Ou seja, para a entrada acima, o comando de leitura deve especificar a quebra de linha e o espaço em branco entre o segundo e terceiro números:
var x, y, z; scanf("%d\n%d %d", "x", "y", "z");
Escreva um programa que
A única linha da entrada contém um número inteiro N.
Seu programa deve escrever uma única linha na saída, contendo um número inteiro, o dobro do valor lido da entrada.
A entrada obedece às seguintes restrições:
Entrada
10 |
Saída
20 |
Entrada
1000 |
Saída
2000 |
Entrada
91 |
Saída
182 |
Sua professora está cansada de calcular as médias dos alunos da turma e pediu que você escreva um programa que
A única linha da entrada contém três números inteiros N1, N2 e N3, indicando as notas de um aluno nas três provas.
Seu programa deve escrever uma única linha na saída, contendo um número real com uma casa decimal de precisão, a média das três notas.
A entrada obedece às seguintes restrições:
Entrada
5 6 7 |
Saída
6.0 |
Entrada
10 9 9 |
Saída
9.3 |
Entrada
8 5 7 |
Saída
6.7 |
Calibrar os pneus do carro deve ser uma tarefa cotidiana de todos os motoristas. Para isto, os postos de gasolina possuem uma bomba de ar. A maioria das bombas atuais são eletrônicas, permitindo que o motorista indique a pressão desejada num teclado. Ao ser ligada ao pneu, a bomba primeiro lê a pressão atual e calcula a diferença de pressão entre a desejada e a lida. Com esta diferença ela esvazia ou enche o pneu para chegar na pressão correta. Sua ajuda foi requisitada para desenvolver o programa da próxima bomba da SBC - Sistemas de Bombas Computadorizadas. Escreva um programa que, dada a pressão desejada digitada pelo motorista e a pressão do pneu lida pela bomba, indica a diferença entre a pressão desejada e a pressão lida.
A primeira linha da entrada contém um inteiro N que indica a pressão desejada pelo motorista. A segunda linha contém um inteiro M que indica a pressão lida pela bomba.
Seu programa deve imprimir uma única linha, contendo a diferença entre a pressão desejada e a pressão lida.
A entrada obedece às seguintes restrições:
Entrada
30 18 |
Saída
12 |
Entrada
27 27 |
Saída
0 |
Entrada
27 30 |
Saída
-3 |
Tarefa da OBI2010, Modalidade Programação Júnior, Fase 1
A Olimpíada Internacional de Informática (IOI, no original em inglês) é a mais prestigiosa competição de programação para alunos até o ensino médio; a cada ano, aproximadamente 300 competidores, de oitenta países, se reúnem em um país diferente para as provas da competição. Naturalmente, os competidores usam o tempo livre para acessar a Internet, programar e jogar em seus notebooks. No entanto, eles se depararam com um problema: o saguão do hotel só tem uma tomada.
Felizmente, os quatro competidores da equipe brasileira da IOI trouxeram cada um uma régua de tomadas, permitindo assim ligar vários notebooks em uma só tomada do saguão. Eles sabem também que podem ligar uma régua em outra para aumentar ainda mais o número de tomadas disponíveis. No entanto, como as réguas têm muitas tomadas, eles pediram para você escrever um programa que, dado o número de tomadas em cada régua, determine o número máximo de notebooks que podem ser conectados a tomadas num mesmo instante.
A entrada consiste de uma linha com quatro inteiros positivos T1, T2, T3, T4, indicando o número de tomadas de cada uma das quatro réguas.
Entrada
2 4 3 2 |
Saída
8 |
Entrada
6 6 6 6 |
Saída
21 |
Entrada
2 2 2 3 |
Saída
6 |
Tarefa da OBI2013, Modalidade Programação Júnior, Fase 1
Nesta seção você encontra exemplos de soluções para os exercícios. Mas antes de ver a solução para um exercício tente resolvê-lo, criando a sua própria solução.
Solução do Exercício 1// Solução para o exercício 1, Aula 5 // Nota dobrada var nota; // lê um valor inteiro scanf("%d", "nota"); // escreve o resultado printf("%d\n", 2*nota);
Solução do Exercício 2
// Solução para o exercício 1, Aula 5 // Média da prova var nota1, nota2, nota3; // lê as três notas scanf("%d%d%d", "nota1", "nota2", "nota3"); // escreve o resultado printf("%.1f\n", (nota1+nota2+nota3)/3.0);
Solução do Exercício 3
// Solução para o exercício 2, Aula 5 // Calibrando pneus var n, m; // lê a entrada scanf("%d%d", "n", "m"); // escreve o resultado printf("%d\n",n-m);
Solução do Exercício 4
// Solução para o exercício 3, Aula 5 // Tomadas var t1, t2, t3, t4, total; // lê a entrada scanf("%d%d%d%d", "t1", "t2", "t3", "t4"); // soma todas as tomadas nos quatro tomadeiros total = t1 + t2 + t3 + t4; // mas cada uma das três primeiras réguas tem uma tomada ligada à próxima régua // então temos três tomadas a menos disponíveis para notebooks total = total - 3; // escreve o resultado printf("%d\n",total);