Correção dos exercícios
1) Faça um programa em C que solicite uma quantidade de alunos e então, para cada aluno,
solicite a nota. No final o programa deve exibir todas as notas.
IMPORTANTE: As notas deverão ser armazenadas em um vetor com alocação dinâmica.
2) Faça um programa em C que solicite uma quantidade de pessoas. Para cada pessoa deverá
ser perguntada a idade e o salário. No final o programa deverá exibir:
- Idade da pessoa com o maior salário;
- Idade da pessoa com o menor salário;
- Salário da pessoa mais nova;
- Salário da pessoa mais velha.
IMPORTANTE: As informações deverão ser armazenadas em vetores com alocação dinâmica.
3) Faça um programa que crie uma estrutura contendo as seguintes informações:
- Nome;
- Telefone;
- E-mail.
Este programa deverá perguntar quantos contatos você deseja cadastrar e então solicitar as
informações.
IMPORTANTE: As informações deverão ser armazenadas em um vetor com alocação dinâmica.
4) Faça um programa em C que solicite uma quantidade de alunos e então, para cada aluno,
solicite a nota e por fim calcule a média geral.
5) Continuando o exercício anterior, o programa deverá armazenar em um vetor dinâmico todas
as notas acima da média, abaixo da média e igual a média. O programa deverá exibir aos usuários
essas informações.
6) Criar um programa em C que apresente o seguinte menu ao usuário:
"Digite: 1 para incluir uma nova nota, 2 para visualizar todas as notas e 3 para exibir a média
geral".
Quando for selecionada a opção 1 o sistema deverá aumentar dinamicamente o tamanho de
um vetor para que seja possível inserir um novo valor.
Quando for selecionada a opção 2 o sistema deverá exibir todas as notas informadas.
Quando for selecionada a opção 3 o sistema deverá exibir a média dos valores informados.
7) Faça um programa em C que declare a estrutura "Livro". A estrutura será composta pelo Título
do livro, escritor, número de páginas e ano de publicação. Este programa deverá conter um vetor
dinâmico da estrutura livro. Os livros deverão ser inseridos pelo usuário um a um e sempre que
for concluído o cadastro de um livro o sistema deve perguntar se o usuário deseja inserir um
novo livro. Ao final o programa deve exibir o total de livros inseridos.
8) Para o programa anterior, além de exibir o total de livros inseridos o programa deverá agora
exibir o(s) livro(s) mais antigo(s) (título e autor), o(s) livro(s) com o maior número de página.
10) Elaborar um programa em C que auxilie no controle de uma fazenda de gado. A quantidade
de gados será determinada pelo usuário e por isso será armazenado em uma variável com
alocação dinâmica. A base de dados é formada por um conjunto de estruturas (registros)
contendo os seguintes campos referente a cada cabeça de gado:
- Código: código da cabeça de gado,
- Leite: número de litros de leite produzido por semana,
- Alim: quantidade de alimento ingerida por semana - em quilos,
- Abate: 'N' (não) ou 'S' (sim).
a) Inserir novo gado.
b) Devolver a quantidade total de leite produzida por semana na fazenda.
c) Devolver a quantidade total de alimento consumido por semana na fazenda.
d) Devolver número de cabeças de gado que iram para o abate.
e) Sair do programa.
Lembrando...
Função "malloc" e "calloc":
São funções utilizadas para fazer a alocação dinâmica de memória. Essas funções alocam o
endereço de memória e retornam esse endereço a uma variável do tipo ponteiro. Com essas
funções é possível alocar uma variável de um tipo primitivo ou até mesmo uma estrutura ou um
vetor / matriz.
Função "free":
Variáveis alocadas dinamicamente continuam a existir mesmo depois que a execução da função
termina, portanto é necessário liberar a memória ocupada por essas variáveis sempre que elas
deixarem de ser utilizadas.
Exemplo 01:
Faça um programa que solicite o tamanho de um vetor, leia os seus valores e então o apresente
na tela:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *v;
int n, i;
printf("Digite o tamanho do vetor:");
scanf ("%d", &n);
v = (int*) malloc(n);
for (i = 0; i < n; ++i){
printf("Digite o elemento %d: ", i);
scanf ("%d", &v[i]);
}
for (i = 0; i < n; i++)
printf ("v[%d] = %d ",i, v[i]);
free (v);
return 0;
}
Ou ainda….
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *v;
int n, i;
printf("Digite o tamanho do vetor:");
scanf ("%d", &n);
v = (int *)calloc(n, sizeof(int));
for (i = 0; i < n; ++i){
printf("Digite o elemento %d: ", i);
scanf ("%d", &v[i]);
}
for (i = 0; i < n; i++)
printf ("v[%d] = %d ",i, v[i]);
free (v);
return 0;
}
Função "realloc":
Função utilizada para realocar a memória. Essa função altera o tamanho de uma variável.
Exemplo, um vetor passa de tamanho 3 para 5.
Exemplo 01:
Faça um programa que solicite ao usuário diversos número. O programa será encerrado quando
o usuário informar o valor 0. Ao final apresente os valores informados:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int x, i;
int *N, numero;
x = 0;
do {
printf("Digite um numero (0 para sair): ");
scanf("%d", &numero);
if (numero == 0)
break;
x++;
N = (int*) realloc(N, x * sizeof(int));
if (N!=NULL) {
N[x-1] = numero;
}
else {
free(N);
printf("Nao foi possivel alocar a memoria.");
exit;
}
} while (numero != 0);
printf ("Numbers entered: ");
for (i=0;i<x;i++)
printf ("valor: %d \n",N[i]);
free (N);
return 0;
}
Download

Correção dos exercícios 1) Faça um programa em C que solicite