Você está na página 1de 6

Lista de Struct

Nome:Pedro Vinicius Vieira augusto

Turma:4° período de engenharia de computação

1. Faca um programa que realize a leitura dos seguintes dados relativos a um conjunto de
alunos: Matricula, Nome, Codigo da Disciplina, Nota1 e Nota2. Considere uma turma
de ate 10 alunos. Após ler todos os dados digitados, e depois de armazena-los em um
vetor de estrutura, exibir na tela a listagem final dos alunos com as suas respectivas
medias ´ finais (use uma media ponderada: Nota1 com peso=1.0 e Nota2 com
peso=2.0)

RESPOSTA DA QUESTÃO 1:

#include <stdio.h>

struct Aluno {

int matricula;

char nome[50];

int codigoDisciplina;

float nota1;

float nota2;

};

int main() {

struct Aluno turma[10];

int numAlunos;

printf("Digite o número de alunos (max 10): ");

scanf("%d", &numAlunos);

for (int i = 0; i < numAlunos; i++) {

printf("Digite a Matrícula do aluno %d: ", i + 1);

scanf("%d", &turma[i].matricula);

printf("Digite o Nome do aluno %d: ", i + 1);

scanf(" %49[^\n]", turma[i].nome);

printf("Digite o Código da Disciplina do aluno %d: ", i + 1);


scanf("%d", &turma[i].codigoDisciplina);

printf("Digite a Nota 1 do aluno %d: ", i + 1);

scanf("%f", &turma[i].nota1);

printf("Digite a Nota 2 do aluno %d: ", i + 1);

scanf("%f", &turma[i].nota2);

printf("Listagem Final dos Alunos:\n");

printf("Matrícula\Nome\Código Disciplina\Média Final\n");

for (int i = 0; i < numAlunos; i++) {

float mediaFinal = (turma[i].nota1 * 1.0 + turma[i].nota2 * 2.0) / 3.0;

printf("%d\t\t%s\t%d\t\t\t%.2f\n", turma[i].matricula, turma[i].nome,


turma[i].codigoDisciplina, mediaFinal);

return 0;

2. Faca um programa que armazene em um registro de dados (estrutura composta) os


dados de um funcionario de uma empresa, compostos de: Nome, Idade, Sexo (M/F),
CPF, Data de Nascimento, Codigo do Setor onde trabalha (0-99), Cargo que ocupa
(string de ate 30 caracteres) e Salario. Os dados devem ser digitados pelo usuario,
armazenados ´ na estrutura e exibidos na tela.

RESPOSTA DA QUESTÃO 2:

#include <stdio.h>
#include <string.h>

struct Funcionario {
char nome[50];
int idade;
char sexo;
char cpf[15];
char dataNascimento[11];
int codigoSetor;
char cargo[30];
double salario;
};

int main() {
struct Funcionario funcionario;

printf("Digite o Nome do Funcionário: ");


scanf("%s", funcionario.nome);
printf("Digite a Idade: ");
scanf("%d", &funcionario.idade);
printf("Digite o Sexo (M/F): ");
scanf(" %c", &funcionario.sexo);
printf("Digite o CPF: ");
scanf("%s", funcionario.cpf);
printf("Digite a Data de Nascimento (dd/mm/aaaa): ");
scanf("%s", funcionario.dataNascimento);
printf("Digite o Código do Setor (0-99): ");
scanf("%d", &funcionario.codigoSetor);
printf("Digite o Cargo: ");
scanf("%s", funcionario.cargo);
printf("Digite o Salário: ");
scanf("%lf", &funcionario.salario);

printf("Dados do Funcionário:\n");
printf("Nome: %s\n", funcionario.nome);
printf("Idade: %d\n", funcionario.idade);
printf("Sexo: %c\n", funcionario.sexo);
printf("CPF: %s\n", funcionario.cpf);
printf("Data de Nascimento: %s\n", funcionario.dataNascimento);
printf("Código do Setor: %d\n", funcionario.codigoSetor);
printf("Cargo: %s\n", funcionario.cargo);
printf("Salário: %.2f\n", funcionario.salario);

return 0;
}

3. Definir a estrutura cuja representac¸ao grafica e dada a seguir, definir os campos com
os tipos basicos necessarios.

(a) Crie um vetor Cadastro com 5 elementos.


(b) Permita ao usuario entrar com dados para preencher esse 5 cadastros. ´
(c) Encontre a pessoa com maior idade entre os cadastrados
(d) Encontre as pessoas do sexo masculino
(e) Encontre as pessoas com salario maior que 1000. ´
(f) Imprima os dados da pessoa cuja identidade seja igual a um valor fornecido pelo usuario

RESPOSTA DA QUESTÃO 3:

#include <stdio.h>
#include <string.h>

struct Endereco {
char rua[100];
char bairro[50];
char cidade[50];
char estado[3];
char cep[10];
};

struct DadosPessoais {
char nome[100];
char identidade[15];
char telefone[15];
char CPF[12];
int idade;
};

struct DadosProfissionais {
float salario;
char estadoCivil[20];
char sexo;
};

int main() {
struct Cadastro {
struct DadosPessoais pessoais;
struct Endereco endereco;
struct DadosProfissionais profissionais;
};

struct Cadastro cadastros[5];

for (int i = 0; i < 5; i++) {


printf("Preenchendo dados para o Cadastro %d:\n", i + 1);

printf("Nome: ");
scanf("%s", cadastros[i].pessoais.nome);

printf("Identidade: ");
scanf("%s", cadastros[i].pessoais.identidade);

printf("Telefone: ");
scanf("%s", cadastros[i].pessoais.telefone);
}
int maiorIdade = cadastros[0].pessoais.idade;
int indexMaiorIdade = 0;
for (int i = 1; i < 5; i++) {
if (cadastros[i].pessoais.idade > maiorIdade) {
maiorIdade = cadastros[i].pessoais.idade;
indexMaiorIdade = i;
}
}
printf("Pessoa com maior idade: %s\n", cadastros[indexMaiorIdade].pessoais.nome);

printf("Pessoas do sexo masculino:\n");


for (int i = 0; i < 5; i++) {
if (cadastros[i].profissionais.sexo == 'M') {
printf("%s\n", cadastros[i].pessoais.nome);
}
}

printf("Pessoas com salário maior que 1000:\n");


for (int i = 0; i < 5; i++) {
if (cadastros[i].profissionais.salario > 1000) {
printf("%s\n", cadastros[i].pessoais.nome);
}
}

char identidadeBuscada[15];
printf("Digite a identidade a ser buscada: ");
scanf("%s", identidadeBuscada);

for (int i = 0; i < 5; i++) {


if (strcmp(cadastros[i].pessoais.identidade, identidadeBuscada) == 0) {
printf("Dados da pessoa com identidade %s:\n", identidadeBuscada);
printf("Nome: %s\n", cadastros[i].pessoais.nome);
}
}

return 0;
}

4. Programa para cálcular a média de alunos. Escrever um programa C que cadastre


o nome, a matrícula e duas notas de vários alunos. Em seguida imprima a matrícula, o
nome e a média de cada um deles.

Resposta da questão 4:

#include <stdio.h>
#include <string.h>

struct Aluno {
char nome[100];
int matricula;
float nota1;
float nota2;
float media;
};

int main() {
int numAlunos;

printf("Quantos alunos deseja cadastrar? ");


scanf("%d", &numAlunos);

struct Aluno alunos[numAlunos];

for (int i = 0; i < numAlunos; i++) {


printf("Cadastro do Aluno %d:\n", i + 1);

printf("Nome: ");
scanf("%s", alunos[i].nome);

printf("Matrícula: ");
scanf("%d", &alunos[i].matricula);

printf("Nota 1: ");
scanf("%f", &alunos[i].nota1);

printf("Nota 2: ");
scanf("%f", &alunos[i].nota2);

alunos[i].media = (alunos[i].nota1 + alunos[i].nota2) / 2;


}

printf("\nMatrícula Nome Média\n");


for (int i = 0; i < numAlunos; i++) {
printf("%-10d %-20s %.2f\n", alunos[i].matricula, alunos[i].nome, alunos[i].media);
}

return 0;
}

Você também pode gostar