Anda di halaman 1dari 3

Universidade Federal do Esprito Santo Centro Tecnolgico

Departamento de Informtica

Prof. Thiago Oliveira dos Santos

LISTA DE EXERCCIOS - 4
1. O programa abaixo gera notas aleatrias (de 0 a 100) para 200 participantes de um
concurso. Complemente o programa para que ele calcule e imprima: a menor nota, a
maior nota, a nota mdia, o desvio padro, e o nmero de participantes reprovados
(nota inferior a 70).

#include <time.h>
int main(){

int i;
int notas[200];

srand(time(NULL));
for (i = 0; i < 200; i++){
notas[i] = rand() % 101;
}

return 0;
}
2. Faa um programa para ler 10 nmeros inteiros do teclado e armazen-los em um
vetor. Utilizando esse vetor, efetue as seguintes operaes:
a) Dizer se o vetor est ordenado em ordem crescente, decrescente, ou se est desordenado.
b) Imprimir o par de posies consecutivas com a maior distancia entre elas. Se houver mais
de um par com a mesma distancia, imprima todos eles.
b) Ler um intervalo do teclado (m e n, onde m < n) e dizer quantos nmeros esto dentro do
intervalo e quantos nmeros esto fora do intervalo.
3. Faa uma funo que receba como parmetros um vetor de inteiros, seu tamanho e
um nmero inteiro X a ser procurado. Essa funo deve retornar o ndice da
primeira ocorrncia de X no vetor passado.
4. Faa um programa para ler um vetor A com 10 componentes distintas inteiras e um
vetor B com 5 componentes distintas inteiras e verificar se as seguintes afirmaes
so verdadeiras ou falsas:
a) O vetor B est totalmente contido no vetor A: todo elemento de B encontra-se tambm
em A;
b) O vetor B est parcialmente contido no vetor A: somente alguns elementos de B esto em
A;
Universidade Federal do Esprito Santo Centro Tecnolgico
Departamento de Informtica

Prof. Thiago Oliveira dos Santos

c) O vetor B no est nada contido no vetor A: no existe nenhum elemento de B no vetor A.
5. Faa um programa que verifique se as componentes de um vetor de N componentes
inteiras lidas pelo teclado formam uma progresso aritmtica. Informe se sim ou se
no. Caso sim, imprima o termo inicial e a razo. Faa o mesmo para progresso
geomtrica.
6. Faa um programa para ler 10 nmeros inteiros do teclado e armazen-los em um
vetor A. Troque os elementos de posio impar com os de posio par
imediatamente seguintes. Ao final, imprima A. OBS: Utilize a funo da questo 1 da
lista 3 para fazer a troca.
7. Faa um programa para ler 10 nmeros inteiros do teclado e armazen-los em um
vetor A. Crie um vetor B com itens na ordem inversa de A.
8. Faa um programa para ler 10 nmeros inteiros do teclado e armazen-los em um
vetor A. Inverta a ordem dos itens de A sem utilizar vetores adicionais auxiliares.
9. Faa um programa para ler 20 nmeros inteiros do teclado e armazenar os 10
primeiros em um vetor A e os 10 ltimos em um vetor B. Ordene os vetores A e B
individualmente. Depois gere um vetor C com os elemento de A e B intercalados de
forma que o vetor C permanea ordenado. Ao final, imprima C.
10. Faa um programa que leia os elementos, um a um, de uma matriz esttica A (5x3),
assim como e os elementos de uma matriz esttica B (3x4). Posteriormente, faa a
multiplicao matricial de A e B, e armazene o resultado em uma matriz esttica C
com tamanho apropriado e imprima as 3 matrizes.
11. Faa um programa que leia as dimenses (MAxNA) e os elementos, um a um, de uma
matriz A, assim como as dimenses (MBxNB) e os elementos de uma matriz B.
Posteriormente, faa a multiplicao matricial de A e B, e armazene o resultado em
uma matriz C com tamanho apropriado. Diga se no for possvel! Para isso,
implemente funes auxiliares: uma que aloque memria dinmica para uma matriz
de tamanho M por N (cabealho, int* AlocaMat(int M, int N);), uma que leia dados do
teclado para uma matriz H (MxN) (cabealho, void PreencheMat(int * H, int M, int
N)), uma que multiplique as matrizes, A (MAxNA) e B (MBxNB), armazene o resultado
em C e retorne verdadeiro foi possvel (cabealho, int MulMat(int * A, int MA, int NA,
int * B, int MB, int NB, int * C)), uma que imprima o contedo de uma matriz H (MxN)
(cabealho, void ImprimeMat(int * H, int M, int N)), e uma que libere a memria
Universidade Federal do Esprito Santo Centro Tecnolgico
Departamento de Informtica

Prof. Thiago Oliveira dos Santos

alocada para um matriz H (cabealho, void LiberaMat(int* H)).
12. Refaa a questo anterior considerando o tipo MATRIZ composto por um nmero de
linhas (int), nmero de colunas (int) e um vetor dinmico (int*). Considere os
seguintes cabealhos: MATRIZ* AlocaMat(int M, int N);, void PreencheMat(MATRIZ*
H);, int MulMat(MATRIZ* A, MATRIZ* B, MATRIZ* C);, void ImprimeMat(MATRIZ* H);,
void LiberaMat(int* H).
13. Faa um programa que leia N do teclado representando uma quantidade de
produtos a serem lidos tambm do teclado. Os produtos a serem lidos so formados
pelos campos: nome, preo, quantidade em estoque. Ao final, imprima o nome do
produto mais caro e do mais barato, o nome dos produtos que esto em falta.
14. Faa um jogo da velha. Utilize uma matriz tabuleiro para armazenar o estado do
jogo. Represente posies vazias com 0, jogadas do jogador 1 com 1 e jogadas do
jogador 2 com 2. O programa deve imprimir o tabuleiro na tela com "X", "O" e " "
para representar o jogador 1, 2 e uma posio livre respectivamente. O programa
deve pedir ao jogador da vez para digitar o ndice (linha e coluna) da posio. Se a
jogada for vlida (posio est livre e o ndice est no tabuleiro), o programa deve
verificar se o jogador ganhou, ou se o jogo acabou. Caso sim, anuncie e pare. Caso
contrrio, ele deve imprimir o estado atual do tabuleiro e passar a vez para o
prximo jogador.
15. Faa um programa com o um menu que permita:
a) Ler o nome (char[200]) e a idade (int) de uma pessoa pelo teclado e adicionar a uma lista
encadeada.
b) Imprimir o contedo da lista.
c) Procurar na lista a pessoa com um determinado nome (lido do teclado) e imprimir sua
idade.
d) Imprimir o nome de todas as pessoas com idade maior do que X, onde X um nmero lido
do teclado.
e) Sair

Anda mungkin juga menyukai