Você está na página 1de 5

Centro de Ciências Exatas, Arquitetura e Engenharia

Professor: Ciro Cirne Trindade


Disciplina: Introdução à Computação-II
Cursos: Ciência da Computação/Sistemas de Informação

Lista de Exercícios – Vetores


1. Um vetor é uma coleção de variáveis de:
( ) diferentes tipos de dados distribuídos pela memória;
( ) tipos de dados similares distribuídos pela memória;
( ) tipos de dados similares em sequência na memória;
( ) diferentes tipos de dados em sequência na memória.
2. Se um vetor é declarado como:
float precos[10];
o laço abaixo é correto para acessar todos os elementos do vetor?
for (i = 0; i <= 10; i++) {
scanf("%f", &precos[i]);
}
3. A instrução abaixo é correta para inicializar um vetor?
const int vetor = { 1, 2, 3, 4, 5 };
4. Qual é o valor de cada um dos elementos do vetor a declarado e inicializado abaixo?
int a[5] = { [1] = 4, 10, [4] = 20 };
5. Desenvolva um programa para armazenar 15 números inteiros em um vetor e imprimir
uma listagem numerada contendo o número e umas das mensagens: par ou ímpar.
6. Desenvolva um programa para armazenar 8 números em um vetor e depois imprimir todos
os números múltiplos de 6 digitados.
7. Escreva um programa que dada uma sequência de n números inteiros, imprimi-los em
ordem inversa.
8. Criar um programa em C que leia o preço de compra e o preço de venda de 10
mercadorias usando um vetor para cada um dos preços. O programa deverá imprimir
quantas mercadorias proporcionam:
a) Lucro < 10%
b) 10 % <= Lucro <= 20%
c) Lucro > 20%
9. Criar um programa para entrar com números inteiros em um vetor A[10]. Gerar e imprimir
o vetor B onde cada elemento é o quadrado do elemento, na respectiva posição do vetor A.
10. Criar um programa em C que receba a temperatura média de cada mês do ano, em graus
centígrados, e armazene essas temperaturas em um vetor. Imprimir as temperaturas de
todos os meses, maior e a menor temperatura do ano e em que mês aconteceram. Suponha
que não há meses com temperaturas iguais.
11. Tentando descobrir se um dado era viciado, um dono de cassino o lançou n vezes. Dados
os n resultados dos lançamentos, determinar o número de ocorrências de cada face.
12. Criar um programa em C para gerenciar um sistema de reservas de mesas em uma casa de
espetáculo. A casa possui 30 mesas de 4 lugares cada. O programa deverá permitir que o
usuário escolha uma mesa (1 a 30) e forneça a quantidade de lugares desejados (um valor
entre 1 e 4). O algoritmo deverá informar se foi possível realizar a reserva e atualizar o
número de lugares disponíveis. Se não for possível, o programa deverá emitir uma
mensagem. O programa pode aceitar mais de uma reserva para a mesma mesa, desde que
haja cadeiras disponíveis na mesa. O programa deve terminar quando o usuário digitar 0
(zero) para o número da mesa ou quando todos os 120 lugares estiverem ocupados. No
final o programa deverá exibir o número da mesa e a quantidade de lugares ocupados das
mesas com reserva e o percentual de ocupação das mesas do restaurante.
13. Dada uma sequência de n números inteiros, determinar qual é a maior subsequência
crescente nesta sequência. Por exemplo, seja n = 8, a sequência 5, 7, -1, 0 , 3, 6, 6, 4, então
a maior sequência crescente é -1, 0, 3, 6.
14. Calcular o valor do polinômio p(x) = a0x0+ a1x1 + … + anxn em k pontos distintos. São
dados os valores de n (grau do polinômio), de a0, a1, …, an (coeficiente reais do
polinômio), de k e dos pontos x1, x2, …, xk.
15. Dada uma sequência de n números reais, determinar os números que compõem a
sequência e o número de vezes que cada um deles ocorre na mesma. Por exemplo, n = 8 e
a sequência -1.7, 3.0, 0.0, 1.5, 0.0, -1.7, 2.3, -1.7. A saída seria:
-1.7 ocorre 3 vezes
3.0 ocorre 1 vez
0.0 ocorre 2 vezes
1.5 ocorre 1 vez
2.3 ocorre 1 vez
16. Dados dois números naturais m e n e duas sequências ordenadas com m e n números
inteiros, obter uma única sequência ordenada contendo todos os elementos das sequências
sem repetição.
17. Dadas duas sequências com n números inteiros entre 0 e 9, interpretadas como dois
números inteiros de n algarismos, calcular a sequência de números que representa a soma
dos dois inteiros. Por exemplo, n = 6
1ª sequência 8 2 4 9 0 3
2ª sequência + 3 5 6 7 1 0
Resultado 1 1 8 1 6 1 3
18. (1ª fase da Maratona de Programação 2011) A divisão de Suprimentos de Botas e Calçados
do Exército comprou um grande número de pares de botas de vários tamanhos para seus
soldados. No entanto, por uma falha de empacotamento da fábrica contratada, nem todas
as caixas entregues continham um par de botas correto, com duas botas do mesmo
tamanho, uma para cada pé. O sargento mandou que os recrutas retirassem todas as botas
de todas as caixas para reembalá-las, desta vez corretamente.
Quando o sargento descobriu que você sabia programar, ele solicitou com a gentileza
habitual que você escrevesse um programa que, dada a lista contendo a descrição de cada
bota entregue, determina quantos pares corretos de botas poderão ser formados no total.
Entrada
A entrada contém vários casos de teste. A primeira linha de um caso de teste contém um
inteiro N indicando o número de botas individuais entregues. Cada uma das N linhas
seguintes descreve uma bota, contendo um número inteiro M e uma letra L, separados por
um espaço em branco. M indica o número do tamanho da bota e L indica o pé da bota: L =
‘D’ indica que a bota é para o pé direito, L = ‘E’ indica que a bota é para o pé esquerdo.
Observação: o final da entrada coincide com o final do arquivo:
while (scanf("%d", &n) != EOF) {
Saída
Para cada caso de teste imprima uma linha contendo um único número inteiro indicando o
número total de pares corretos de botas que podem ser formados.
Restrições
• 2 ≤ N ≤ 104
• N é par
• 30 ≤ M ≤ 60
• L ∈ {D, E}
Exemplos
Exemplo de entrada Saída para o exemplo de entrada
4 2
40 D 1
41 E
41 D
40 E
6
38 E
39 E
40 D
38 D
40 D
37 E

19. (1ª Fase da Maratona de Programação 2015) Um jogo de estratégia, com J jogadores, é
jogado em volta de uma mesa. O primeiro a jogar é o jogador 1, o segundo a jogar é o
jogador 2 e assim por diante. Uma vez completada uma rodada, novamente o jogador 1
faz sua jogada e a ordem dos jogadores se repete novamente. A cada jogada, um jogador
garante uma certa quantidade de Pontos de Vitória. A pontuação de cada jogador
consiste na soma dos Pontos de Vitória de cada uma das suas jogadas.
Dado o número de jogadores, o número de rodadas e uma lista representando os Pontos
de Vitória na ordem em que foram obtidos, você deve determinar qual é o jogador
vencedor. Caso mais de um jogador obtenha a pontuação máxima, o jogador com
pontuação máxima que tiver jogado por último é o vencedor.
Entrada
A entrada consiste de duas linhas. A primeira linha contém dois inteiros J e R, o número
de jogadores e de rodadas respectivamente (1 ≤ J, R ≤ 500). A segunda linha contém J ×
R inteiros, correspondentes aos Pontos de Vitória em cada uma das jogadas feitas, na
ordem em que aconteceram. Os Pontos de Vitória obtidos em cada jogada serão sempre
inteiros entre 0 e 100, inclusive.
Saída
Seu programa deve produzir uma única linha, contendo o inteiro correspondente ao
jogador vencedor.
Exemplos
Entrada Saída
3 3 3
1 1 1 1 2 2 2 3 3

Entrada Saída
2 3 1
0 0 1 0 2 0

20. (1ª Fase da Maratona de Programação 2013) O recente terremoto em Nlogônia não
chegou a afetar muito as edificações da capital, principal epicentro do abalo. Mas os
cientistas detectaram que o principal dique de contenção teve um dano significativo na
sua parte subterrânea que, se não for consertado rapidamente, pode causar o seu
desmoronamento, com a consequente inundação de toda a capital.
O conserto deve ser feito por mergulhadores, a uma grande profundidade, em condições
extremamente difíceis e perigosas. Mas como é a sobrevivência própria cidade que está
a em jogo, seus moradores acudiram em grande número como voluntários para essa
perigosa missão.
Como é tradicional em missões perigosas, cada mergulhador recebeu no início do
mergulho uma pequena placa com um número de identificação. Ao terminar o mergulho,
os voluntários devolviam a placa de identificação, colocando-a em um repositório.
O dique voltou a ser seguro, mas aparentemente alguns voluntários não voltaram do
mergulho. Você foi contratado para a penosa tarefa de, dadas as placas colocadas no
repositório, determinar quais voluntários perderam a vida salvando a cidade.
Entrada
A entrada é composta de duas linhas. A primeira linha contém dois inteiros N e R,
indicando respectivamente o número de voluntários que mergulhou e o número de
voluntários que retornou do mergulho. Os voluntários são identificados por números de
1 a N. A segunda linha da entrada contém R inteiros, indicando os voluntários que
retornaram do mergulho (ao menos um voluntário retorna do mergulho).
Saída
Seu programa deve produzir uma única linha, contendo os identificadores dos
voluntários que não retornaram do mergulho, na ordem crescente de suas identificações.
Deixe um espaço em branco após cada identificador (note que isto significa que deve
haver um espaço em branco também após o último identificador). Se todos os
voluntários retornaram do mergulho, imprima apenas o caractere ‘*’ (asterisco).
Restrições
• 1 ≤ R ≤ N ≤ 104
Exemplos
Entrada Saída
5 3 2 4
3 1 5

Entrada Saída
6 6 *
6 1 3 2 5 4

22. (URI Online Judge | Picos e Vales) Ao observar a paisagem da Nlogônia, o professor MC
percebeu que a cada intervalo de 100 metros existe um pico. E que exatamente na metade
de dois picos há um vale. Logo, a cada 50 metros há um vale ou um pico e, ao longo da
paisagem, não há um pico seguido por outro pico, nem um vale seguido por outro vale.
O professor MC ficou curioso com esse padrão e quer saber se, ao medir outras paisagens,
isso se repete. Sua tarefa é, dada uma paisagem, indicar se ela possui esse padrão ou não.
Entrada
A entrada é dada em duas linhas. A primeira tem o número N de medidas da paisagem (1 <
N ≤ 100). A segunda linha tem N inteiros: a altura Hi de cada medida (-10000 ≤ Hi ≤
10000, para todo Hi, tal que 1 ≤ i ≤ N). Uma medida é considerada um pico se é maior que
a medida anterior. Uma medida é considerada um vale se é menor que a medida anterior.
Saída
A saída é dada em uma única linha. Caso a paisagem tenha o mesmo padrão da Nlogônia,
deve ser mostrado o número 1. Caso contrário, mostra-se o número 0.
Exemplos
Entrada Saída
3 1
1 4 -2

Entrada Saída
5 1
100 99 112 -8 -7

Entrada Saída
4 0
1 2 2 1