Buscar

PROGRAMAÇÃO EM C- FUNÇÃO, MATRIZ E VETOR

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1. Escreva um procedimento que recebe as 3 notas de um aluno por parâmetro e uma letra. Se a letra for A o
procedimento calcula a média aritmética das notas do aluno e se for P, a suamédia ponderada (pesos: 5, 3 e 2). O
resultado pode ser exibido na tela.
void notas (float n1,float n2,float n3,char t)
{
if(t=='a' || t=='A')
{
printf("%.2f",(n1+n2+n3)/3);
}
else if(t=='p' || t=='P')
{
printf("%.2f",((n1*5)+(n2*3)+(n3*2))/10);
}
else
{
printf ("Tipo de media invalido:\n");
}
}
int main ()
{
float a,b,c;
char media;
printf("Digite as Tres notas do aluno: \n");
scanf ("%f %f %f",&a,&b,&c);
printf("Escolha Apara Media Aritmetica ou P para Media Ponderada: \n");
scanf (" %c", &media);
notas (a,b,c,media);
return 0;
}
2. Faça uma função que recebe por parâmetro um valor inteiro e positivo e retorna o valor lógico Verdadeiro caso o
valor seja primo e Falso em caso contrário.
#include <stdio.h>
#include <stdlib.h>
int Primo(int numero)
{
int i=0;
int p=1;
for(i=2; i<numero; i++)
{
if(numero%i==0)
{
p=0;
}
}
return p;
}
int main()
{
int Num,Resultado;
printf("Digite um numero:");
scanf("%d",&Num);
Resultado=Primo(Num);
printf("%d\n",Resultado);
if(Resultado== 1)
{
printf("Numero primo.\n");
}
else
{
printf("Numero nao e primo.\n");
}
return 0;
}
3. Faça uma função que recebe a idade de uma pessoa em anos, meses e dias e retorna essa idade expressa em dias.
#include <stdio.h>
#include <stdlib.h>
int idadedias(int anos, int meses, int dias){
int diastotais;
diastotais=anos*365+meses*30+ dias;
return diastotais;
}
int main()
{
int an,me,di;
printf("Informe a idade em anos, meses e dias: ");
scanf("%d %d %d",&an, &me, &di );
printf("A idade informada é de: %d dias", idadedias(an,me,di));
return 0;
}
4. Faça uma função que verifique se um valor é perfeito ou não. Um valor é dito perfeito quando ele é igual a soma dos
seus divisores excetuando ele próprio. (Ex: 6 é perfeito, 6 = 1 + 2 + 3, que são seus divisores). A função deve retornar
um valor booleano.
#include <stdio.h>
#include <stdlib.h>
int perfeito(int n)
{
int i, a=0;
for(i=1; i<n; i++)
{
if(n%i==0)
{
a+=i;
}
}
if(a==i)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int x;
printf("Digite um numero: ");
scanf("%d", &x);
if (perfeito(x) == 1)
{
printf("Numero Perfeito");
}
else
{
printf("Numero nao Perfeito");
}
return 0;
}
5. Faça um procedimento que recebe a idade de um nadador por parâmetro e retorna, também por parâmetro, a
categoria desse nadador de acordo com a tabela abaixo:
Idade
5 a 7 anos
8 a 10 anos
11-13 anos
14-17 anos
Maiores de 18 anos (inclusive)
Categoria
Infantil A
Infantil B
Juvenil A
Juvenil B
Adulto
#include <stdio.h>
#include <stdlib.h>
char* idade(int id){
char*R;
R=(char*)malloc(15*sizeof(char));
if(id>=5 && id<=7){
R= "Infantil A";
}
else if(id>=8 &&id<=10){
R= "Infantil B";
}
else if(id>=11 && id<=13){
R= "juvenil A";
}
else if(id>=14 && id<=17){
R= "juvenil B";
}
else if(id>=18){
R= "Adulto";
}
else{
R= "Idade invalida";
}
return R;
};
int main()
{
int id;
printf("Informe a idade: ");
scanf("%d",&id );
printf ("A categoria é : %s ", idade(id));
return 0;
}
6. Faça uma função que recebe um valor inteiro e verifica se o valor é positivo ounegativo. A função deve retornar um
valor booleano.
#include <stdio.h>
#include <stdlib.h>
int num(int n)
{
if(n<0)
{
return 0;
}
else if (n>0)
{
return 1;
}
}
int main()
{
int x;
printf("Digite umnumero:");
scanf("%d", &x);
if (num(x) == 1)
{
printf("Numero Positivo");
}
else
{
printf("Numero negativo");
}
return 0;
}
7. Faça uma função que recebe um valor inteiro e verifica se o valor é par ou ímpar. A função deve retornar um valor
booleano.
#include <stdio.h>
#include <stdlib.h>
int num (int n){
if((n%2)==0){
return 1;
}
else{
return 0;
}
}
int main()
{
int x;
printf("Digite um numero:");
scanf("%d", &x);
if (num(x)== 1)
{
printf("Numero Par");
}
else
{
printf("Numero impar");
}
return 0;
}
8. Faça uma função que recebe a média final de um aluno por parâmetro e retorna o seu conceito, conforme a tabela
abaixo:
#include <stdio.h>
#include <stdlib.h>
char media(float med){
if(med>=0 && med<=4.9){
return 'D';
}
else if (med>=5 && med<=6.9){
return 'C';
}
else if (med>=7 && med<=8.9){
return 'B';
}
else if (med>=9 && med<=10){
return 'A';
}
}
int main()
{
float med;
printf("Informe a media do aluno: ");
scanf("%f",&med );
printf("%c", media(med));
return 0;
}
9. Faça uma função que recebe, por parâmetro, a altura (alt) e o sexo de uma pessoa e retorna o seu pesoideal. Para
homens, calcular o peso ideal usando a fórmula peso ideal = 72.7 x alt – 58 e, para mulheres, peso ideal = 62.1 x alt –
44.7.
#include <stdio.h>
#include <stdlib.h>
float pesoideal (float alt, char t){
if (t=='M' || t== 'm'){
return(72.7*alt-58);
}
else if (t=='F' || t=='f'){
return (62.1*alt-44.7);
}
}
int main()
{
float a;
char s;
printf("Informe a altura: " );
scanf("%f",&a);
printf("Informe o sexo: " );
scanf(" %c",&s);
printf("%.2f", pesoideal(a,s));
return 0;
}
10. Faça um procedimento que recebe, por parâmetro, a hora de inicio e a hora de término de um jogo, ambas
subdivididas em 2 valores distintos: horas e minutos. O procedimento deve retornar, tambémpor parâmetro, a duração
do jogo em horas e minutos, considerando que o tempo máximo de duração de um jogo é de 24 horas e que o jogo
pode começar em um dia e terminar no outro.
#include <stdio.h>
#include <stdlib.h>
int* duracao( int hi, int mi, int hf, int mf ){
int *R;
R=(int*)malloc(2*sizeof(int));
if(hf<hi)
R[0]=(24-hi)+hf;
else
R[0]=hf-hi;
if (mf<mi){
R[1]=60-(mi-mf);
R[0]-=1;
}
else
R[1]=mf-mi;
return R;
};
int main(){
int hi, mi, hf, mf, *p;
p = (int *)malloc(2* sizeof(int));
printf("Informe a hora de inicio: ");
scanf("%d", &hi);
printf("Informe os minutos de inicio: ");
scanf("%d", &mi);
printf("Informe a hora de termino: ");
scanf("%d", &hf);
printf("Informe os minutos de termino: ");
scanf("%d", &mf);
p=duracao(hi, mi, hf, mf);
printf("A duração do jogo foi de: %d horas e %d minutos ", p[0],p[1]);
return 0;
}
11. Escreva um procedimento que recebes 3 valores reais X, Y e Z e que verifiquese esses valores podem ser os
comprimentos dos lados de um triângulo e, neste caso, retornar qual o tipo de triângulo formado. Para que X, Y e Z
formem um triângulo é necessário que a seguinte propriedade seja satisfeita: o comprimento de cada lado de um
triângulo é menor do que a soma do comprimento dos outros dois lados. O procedimento deve identificar o tipo de
triângulo formado observando as seguintes definições:
Triângulo Equilátero: os comprimentos dos 3 lados são iguais. Triângulo Isósceles: os comprimentos de 2 lados são
iguais. Triângulo Escaleno: os comprimentos dos 3 lados são diferentes.
#include <stdio.h>
#include <stdlib.h>
char* triangulo (int x, int y, int z){
char*R;
R=(char*)malloc(15*sizeof(char));
if ((x< y+z)&& (y< x+z) &&(z< x+y)){
if (x==y && x==z){
R="Triângulo Equilátero";
}
else if ((x==y && x!=z) || (y==z && y!=x) || ( x==z && x!=y)){
R="Triângulo Isósceles";
}
else{
R="Triângulo Escaleno";
}
}
else {
R="Comprimento inválido";
}
return R;
};
int main()
{ int x, y ,z;
printf("Informe o comprimento do primeiro lado do triângulo: ");
scanf("%d", &x);
printf("Informe o comprimento do segundo lado dotriângulo: ");
scanf("%d", &y);
printf("Informe o comprimento do terceiro lado do triângulo: ");
scanf ("%d", &z);
printf("%s", triangulo(x,y,z));
return 0;
}
12. Faça uma função que leia um número não determinado de valorespositivos e retorna a média aritmética dos
mesmos.
#include <stdlib.h>
#include <math.h>
floatsomar()
{
int s=0,x,cont=0;
printf("digite um número ou zero para terminar: ");
scanf("%d", &x);
while (x!=0)
{
s+=x;
cont ++;
printf("digite um número ou zeropara terminar: ");
scanf("%d",&x);
}
s/=cont;
return s;
}
int main()
{
printf("%.2f\n", somar());
return 0;
}
13. Faça uma função que receba um valor inteiro e positivo e calcula o seu fatorial.
int fatorial(int x){
int i,r=1;
for(i=1; i<=x; i++){
r*=i;
}
return r;
}
int main(){
int n;
printf("Informe um número: ");
scanf("%d", &n);
if (n<0){
printf("Valor inválido: número negativo");
}
printf("Resultado fatorial: %d", fatorial(n));
}
14. Faça umprocedimento que recebe, por parâmetro, um valor N e calcula e escreve a taboada de 1 até N. Mostre a
tabuada na forma:
1 x N = N
2 x N = 2N
...
N x N = N2
#include <stdio.h>
#include <stdlib.h>
void tabuada(int n){
int i, j;
for (i=1; i<=n; i++){
for(j=1; j<=n; j++){
printf("%dx%d=%d\n", i,j,i*j);
}
printf("\n");
}
}
int main(){
int n;
printf("Informe um número: ");
scanf("%d", &n);
tabuada(n);
return 0;
}
15. Faça uma função que recebe, porparâmetro, um valor inteiro e positivo e retorna o número de divisores desse
valor.
#include <stdio.h>
#include <stdlib.h>
int divisores(int n){
int i, cont=0;
for(i=1; i<=n; i++){
if((n%i)==0){
cont++;
}
}
return cont;
}
int main(){
int n;
printf("Informe um número: ");
scanf("%d", &n);
printf("Número de dividores: %d", divisores (n));
return 0;
}
16. Escreva uma função que recebe, por parâmetro, um valor inteiro e positivo e retorna osomatório desse valor.
#include <stdio.h>
#include <stdlib.h>
int somatorio(int x){
int i,r=0;
for(i=1; i<=x; i++){
r+=i;
}
return r;
}
int main(){
int n;
printf("Informe um número: ");
scanf("%d", &n);
if (n<0){
printf("Valor inválido: número negativo");
}
printf("Resultado do somatório: %d", somatorio(n));
}
17. Escreva uma função que recebe, por parâmetro, dois valores X e Z e calcula e retorna X elevado a Z. (sem utilizar
funções ou operadores depotência prontos)
#include <stdio.h>
#include <stdlib.h>
float valors(int n){
float i,soma=0;
for(i=1; i<=n ;i++){
printf("1/%.f\n", i);
soma+= 1/i;
}
return soma;
}
int main(){
float n, soma;
printf("Informe um número: ");
scanf("%f", &n);
if (n<0){
printf("Valor inválido: número negativo");
}
printf("Resultado do valor S: %.2f", valors(n));
}
Lista 7
1. Faça uma função recursiva que calcule e retorne o N-ésimo termo da sequênciaFibonacci.
Alguns números desta sequência são: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89...
#include <stdio.h>
#include <stdlib.h>
int fibonacci (int n){
if(n<1){
return 0;
} else if(n<3){
return 1;
} else {
returnfibonacci (n-1) + fibonacci (n-2);
}
}
int main()
{
int n;
printf("Informe o n-esimo numero: ");
scanf("%d", &n);
printf("%d", fibonacci(n));
return 0;
}
2. Faça uma função recursiva que permita somar os elementos de um vetor deinteiros
#include <stdio.h>
#include <stdlib.h>
#define N 5
int somatoria (int vetor [], int tamanho)
{
if(tamanho == 1)
return vetor [0];
else
return vetor [tamanho-1] + somatoria(vetor, tamanho-1);
}
int main()
{
intvetor[N]={5,5,5,5,5};
int resultado = somatoria(vetor, N);
printf("%d\n", resultado);
return 0;
}
3. Crie um programa em C que receba um vetor de números reais com 100 elementos.
Escreva uma função recursiva que inverta ordem doselementos presentes no vetor.
#include <stdio.h>
#include <stdlib.h>
void inverte(int vet[], int tam,int i)
{
	int tmp;
	if(tam>49)
	{
		tmp=vet[tam];
		vet[tam]=vet[i];
		vet[i]=tmp;
		inverte(vet,tam-1,i+1);
	}
}
int main()
{
	int vet[100],i;
	printf("Insira 100 valores: ");
	for(i=0;i<100;i++)
		scanf("%d",&vet[i]);
	printf("\n\nValores digitados: \n");
	for(i=0;i<100;i++)
		printf("\n%d",vet[i]);
	inverte(vet,99,0);
	printf("\n\nValores invertidos: \n");
	for(i=0;i<100;i++)
		printf("\n%d",vet[i]);
return 0;
}
4. Crie uma função recursiva que receba um número inteiro positivo N e calcule o somatório
dos números de 1 a N.
#include <stdio.h>
#include <stdlib.h>
int soma(int n)
{
if(n == 1)
return 1;
else
return ( n+ soma(n-1) );
}
int main()
{
int n;
printf("Digite um inteiro positivo: ");
scanf("%d", &n);
printf("Soma: %d\n", soma(n));
}
5. Faça uma função recursiva que receba um número inteiro positivo N e imprima todos os
números naturais de 0até N em ordem crescente.
#include <stdio.h>
#include <stdlib.h>
int retNaturais(int n) {
	if(n == -1) {
		return 0;
	}
	1 + retNaturais(n - 1);
	printf("%d ", n);
}
int retNaturaisSig(int n) {
	if(n < 0) {
		return retNaturais(n * -1);
	}
	returnretNaturais(n);
}
int main (){
int n;
printf("digite um numero\n");
scanf("%d", &n);
retNaturais(n);
return 0;
}
6. Faça uma função recursiva que receba um número inteiro positivo N e imprima todos os
números naturais de 0 até N emordem decrescente.
#include <stdio.h>
#include <stdlib.h>
int retNaturaisDec(int n){
if(n==0){
return 0;
} else {
printf("%d", n);
return retNaturaisDec(n-1);
}
}
int main()
{
int n;
printf("Informe o numero: ");
scanf("%d", &n);
printf("%d", retNaturaisDec(n));
return 0;
}
7. Faça uma função recursiva que receba um número inteiro positivo par N e imprima todos
os números pares de 0 até N em ordem crescente.
#include <stdio.h>
#include <stdlib.h>
int retSeqPar(int n) {
	if(n < 0) {
		return 0;
	}
	2 + retSeqPar(n - 2);
	printf("%d ", n);
}
int retSeqParSig(int n) {
	if(n < 0) {
		return -1 * retSeqPar(n);
	}
	return retSeqPar(n);
}
int main (){
int n;
printf("digite um numero\n");
scanf("%d", &n);
retSeqPar(n);
return 0;
}
8. Faça uma função recursiva que receba um número inteiro positivo par N e imprima todos
os números pares de 0 até N em ordem decrescente.
#include <stdio.h>
#include <stdlib.h>
int retSeqParDec(int n) {
	if(n == 0) {
		printf("%d ", 0);
		return 0;
	}
	if(n % 2 == 0) {
		printf("%d ", n);
	}
	retSeqParDec(n - 1);
}
int retSeqParDecSig(int n) {
	if(n < 0) {
		return -1 * retSeqParDec(n);
	}
	return retSeqParDec(n);
}
int main (){
int n;
printf("digite um numero\n");
scanf("%d", &n);
retSeqParDec(n);
return 0;
}
9. Os números tetranacci iniciam com quatro termos pré-determinados e a partir daí todos os
demais números são obtidos pela soma dos quatro números anteriores. Os primeiros
números tetranacci são: 0, 0, 0, 1, 1, 2, 4, 8, 15, 29, 56, 108, 208... Faça uma função
recursiva que receba um número N e retorne o N-ésimo termo da sequência de tetranacci.
#include <stdio.h>
#include <stdlib.h>
int tetranacci(int n){
if(n<4){
return 0;
} else if(n<5){
return 1;
} else {
return tetranacci (n-1) + tetranacci (n-2) + tetranacci(n-3) + tetranacci(n-4);
}
}
int main()
{
int n;
printf("Informe o n-esimo numero: ");
scanf("%d", &n);
printf("%d", tetranacci(n));
return 0;
}
Lista 8
Questão 1
Implemente um programa que contenha uma estrutura para descrever os carros de uma determinada revendedora, contendo os seguintes campos:
• marca: char[30]
• ano: inteiro
• cor: char[30]
• preço: float
Declarar o vetor vetcarros do tipo da estrutura definida acima, de tamanho 20.
O programa deverá implementar um menu contendo as seguintes funcionalidades:
(a) Inserir um veículo no vetor.
(b) Solicitar ao usuário que informe um preço e listar os carros (marca, cor e ano) que tenham preço igual ou menor que o valor informado.
(c) Solicitar ao usuário que informe uma marca e listar as informações dos carros desta marca (preço, ano e cor)
(d) Solicitar ao usuário que informe uma marca, ano e cor e informar se existe ou não um carro com essas características. Se existir, informar o preço.
struct carros
{
char marca[30];
int ano;
char cor[30];
float preco;
};
int main()
{
struct carrosvetcarros[20];
int i,x;
for(i=0; i<20; i++)
{
printf("Informe a Marca do carro %d\n",i+1);
scanf("%s",&vetcarros[i].marca);
printf("Informe o Ano do carro %d\n",i+1);
scanf("%d",&vetcarros[i].ano);
printf("Informe a Cor do carro %d\n",i+1);
scanf("%s",&vetcarros[i].cor);
printf("Informe o Preco do carro %d\n",i+1);
scanf("%f",&vetcarros[i].preco);
}
printf("Qual Preco do carro que deseja? \n");
scanf("%f",&x);
for(i=0; i<20; i++)
{
if(x>=vetcarros[i].preco)
{
printf("%s\n",vetcarros[i].marca);
printf("%d\n",vetcarros[i].ano);
printf("%s\n",vetcarros[i].cor);
printf("%.2f\n",vetcarros[i].preco);
}
}
return 0;
}
Questão 2
Implemente um programa que contenha uma estrutura para descrever os livros de uma loja, contendo os seguintes campos:
• código: inteiro
• título: char[30]
• autor: char[30]
• estilo: char[30]
• preço: float
Declarar o vetor vetlivros do tipo da estrutura definida acima, de tamanho 50.
O programa deverá implementar um menu contendo as seguintes funcionalidades:
(a) Incluir um livro no vetor.
(b) Listar o nome de todos os livros.
(c) Solicitar ao usuário que informe o nome de um autor e listar todos os livros (Código, Título, Estilo e Preço) deste autor.
(d) Solicitar ao usuário que informe o Título de um livro e informar se existe ou não um livro com esse título. Se existir, informar o Autor, Estilo e Preço. 
(e) Solicitar ao usuário que informe um Estilo e informar se existe ou não livros com essa característica. Se existir, informar o Autor, Título e Preço. (f) Listar a média geral de preço de todos os livros cadastrados.
struct Livros
{
int cod;
char titulo[50];
char autor[50];
char estilo[50];
float preco;
};
int main()
{
struct Livros vetlivros[50];
int opc, qtd, i, cod, aux;
float preco,soma=0,media;
char titulo[50],autor[50],estilo[30];
qtd = 0;
do
{
printf(" * Sistema de Livros * \n\n\n\n");
printf("1 - Incluir livro.\n");
printf("2 - listar livros.\n");
printf("3 - Buscar pelo autor.\n");
printf("4 - Buscar pelo titulo.\n");
printf("5 - Buscar pelo estilo.\n");
printf("6 - Listar media de preco.\n");
printf("7 - Sair.\n");
printf("Opicao: ");
scanf("%d", &opc);
switch (opc)
{
case 1:
printf("Informe o codigo: ");
scanf("%d", &vetlivros[qtd].cod);
printf("Informe o titulo : ");
scanf("%s", &vetlivros[qtd].titulo);
printf("Informe o autor: ");
scanf("%s", &vetlivros[qtd].autor);
printf("Informe o estilo: ");
scanf("%s", &vetlivros[qtd].estilo);
printf("Informe o preço: ");
scanf("%f", &vetlivros[qtd].preco);
qtd++;
break;
case 2:
printf(" Lista de livros n\ ");
aux=0;
for(i=0; i<qtd; i++)
{
printf("\n %s\n", vetlivros[i].titulo);
}
scanf("%d", &i);
break;
case 3:
printf("Informe um autor: ");
scanf("%s", &autor);
aux=0;
for(i=0; i<qtd; i++)
{
if(strcmp(vetlivros[i].autor, autor) == 0)
{
printf("\ncodigo: %d", vetlivros[i].cod);
printf("\nTitulo: %s", vetlivros[i].titulo);
printf("\nEstilo: %s", vetlivros[i].estilo);
printf("\nPreco: %f", vetlivros[i].preco);
aux++;
}
}
if(aux == 0)
{
printf("Nenhum autor encontrado.");
}
scanf("%d", &i);
break;
case 4:
printf("Informe um titulo: ");
scanf("%s", &titulo);
aux=0;
for(i=0; i<qtd; i++)
{
if(strcmp(vetlivros[i].titulo, titulo) == 0)
{
printf("\nAutor: %s", vetlivros[i].autor);
printf("\nEstilo: %s", vetlivros[i].estilo);
printf("\nPreco: %f", vetlivros[i].preco);
aux++;
}
}
if(aux == 0)
{
printf("Nenhum titulo encontrado.");
}
scanf("%d", &i);
break;
case 5:
printf("Informe um estilo: ");
scanf("%s", &estilo);
aux=0;
for(i=0; i<qtd; i++)
{
if(strcmp(vetlivros[i].estilo, estilo) == 0)
{
printf("\nAutor: %s", vetlivros[i].autor);
printf("\ntitulo: %s", vetlivros[i].titulo);
printf("\nPreco: %f", vetlivros[i].preco);
aux++;
}
}
if(aux == 0)
{
printf("Nenhum estilo encontrado.");
}
scanf("%d", &i);
break;
case 6:
for(i=0; i<qtd; i++)
{
soma+=vetlivros[i].preco;
}
media=soma/i;
printf("Media geral do precos:R$%3.2f\n",media);
break;
case 7:
break;
default:
printf("Opcao invalida");
scanf("%d", &i);
break;
}
}
while(opc != 7);
return 0;
}
Questão 3
Implementar um programa que auxilie no controle de uma fazenda que possuí um total de 2000 cabeças de gado. A base de dados é formada por um conjunto de estruturas (registros) contendo os seguintes campos referente a cada cabeça de gado:
• Código: inteiro • Quantidade de Leite: número de litros de leite produzido por semana. • Quantidade de Alimento: quantidade de alimento ingerida por semana - em quilos. • Data de Nascimento contendo mês e ano. • abate: N (não) ou S (sim).
Declarar o vetor mimosas do tipo da estrutura definida acima, de tamanho 2000.
O programa deverá implementar um menu contendo as seguintes funcionalidades:
(a) Incluir dados no vetor. • Preencher o campo abate, considerando que a cabeça de gado irá para o abate - ”S” - caso: – tenha mais de 5 anos, ou; – produza menos de 40 litros de leite por semana, ou; – produza entre 50 e 70 litros de leite por semana e consuma mais de 50 quilos de alimento por dia. (b) Listar a quantidade total de leite produzida por semana na fazenda. (c) Listar a quantidade total de alimento consumido por semana na fazenda. (d) Listar a quantidade total de leite que vai ser produzido por semana na fazenda, após o abate. (e) Listar a quantidade total de alimento que vai ser consumido por semana na fazenda, após o abate. (f) Listar o número de cabeças de gado que iram para o abate.
struct Gados
{
int cod;
int leite;
int alimento;
int ano;
int mes;
int abate;
};int main()
{
struct Gados mimosas[2000];
int opc, qtd, i, cod, leite, alimento, abate,aux,soma,media;
qtd = 0;
do
{
printf(" * Sistema de Cabecas de Gado da Fazenda * \n\n\n\n");
printf("1 - Incluir gado.\n");
printf("2 - Total de leite por semana.\n");
printf("3 - Consumo total de alimentos por semana.\n");
printf("4 - Produção de leite por semana apos abate.\n");
printf("5 - Consumo total de alimentos por semana apos abate.\n");
printf("6 - Total de abate.\n");
printf("7 - Sair.\n");
printf("Opcao: ");
scanf("%d", &opc);
switch (opc)
{
case 1:
printf("Informe o codigo: ");
scanf("%d", &mimosas[qtd].cod);
printf("Informe a quantidade de leite por semana : ");
scanf("%d", &mimosas[qtd].leite);
printf("Informe o consumo de alimentos em kg por semana: ");
scanf("%d", &mimosas[qtd].alimento);
printf("Informe o ano e mes de nascimento: ");
scanf("%d", &mimosas[qtd].ano);
scanf("%d", &mimosas[qtd].mes);
for(i=0; i<qtd; i++)
{
if(mimosas[i].ano<=2011 || mimosas[i].leite <=40 ||
((mimosas[i].leite>=50) &&
(mimosas[i].leite<=70) && (mimosas[i].alimento>=50)))
{
aux++;
printf("S\n");
mimosas[i].abate=1;
}
else
{
mimosas[i].abate=0;
printf("N\n");
}
i++;
}
break;
case 2:
printf(" Total de leite por semana:\n\ ");
soma=0;
for(i=0; i<qtd; i++)
{
soma+=mimosas[i].leite;
}
printf("%d\n",soma);
break;
case 3:
printf(" Alimento consumido por semana na fazenda:\n\ ");
for(i=0; i<qtd; i++)
{
soma+=mimosas[i].alimento;
}
printf("%d\n",soma);
soma=0;
break;
case 4:
printf(" Total de leite por semana apos abate:\n\ ");
for(i=0; i<qtd; i++)
{
if(mimosas[i].abate==0)
{
soma+=mimosas[i].leite;
}
}
printf("%d\n",soma);
break;
case 5:
printf(" Alimentos consumido por semana apos abate:\n\ ");
for(i=0; i<qtd; i++)
{
if(mimosas[i].abate==0)
{
soma+=mimosas[i].alimento;
}
}
printf("%d\n",soma);
soma=0;
break;
case 6:
printf(" Total de gados para o abate:%d\n\ ",aux);
break;
case 7:
break;
default:
printf("Opcao invalida");
}
}
while(opc != 7);
return 0;
}
Questão 4
Implemente um programa para controlar os produtos do estoque de um supermercado. Para cada produto, tem-se os seguintes campos:
• nome: char[30] • setor: char • quantidade: inteiro • preço: float - preço por unidade do produto
Declarar o vetor Produtos do tipo da estrutura definida acima, de tamanho 100.
O programa deverá implementar um menu contendo as seguintes funcionalidades:(a) Incluir dados no vetor.
(b) Solicitar ao usuário que informe um setor e listar a quantidade de produtos diferentes desse setor.
(c) Calcular o total de capital estimado em produtos do supermercado. (Preço x Quantidade em estoque) de todos os produtos
struct estoque
{
char nome[50],setor[50];
int quantidade;
float preco;
};
int main()
{
struct estoque produtos[100];
int opc, qtd=0, i, cod, quantidade=0,aux;
char setor[50];
char nome[50];
float preco,capital;
do
{
printf(" * Sistema de estoque de um Supermercado * \n\n\n");
printf("1-Incluir produto.\n");
printf("2-Informar setor.\n");
printf("3-Total de capital estimado em produtos do supermercado.\n");
printf("4-Sair.\n");
printf("Opcao desejada:");
scanf("%d",&opc);
switch(opc)
{
case 1:
if(qtd<100)
{
getchar();
printf("Informe o nome:");
scanf("%s", &produtos[qtd].nome);
printf("Informe o setor:");
scanf("%s", &produtos[qtd].setor);
printf("Informe a quantidade:");
scanf("%d", &produtos[qtd].quantidade);
printf("Informe o preco de cada unidade:");
scanf("%f", &produtos[qtd].preco);
qtd++;
}
break;
case 2:
printf("Informe um setor: ");
scanf("%s", &setor);
aux=0;
for(i=0; i<qtd; i++)
{
if(strcmp(produtos[i].setor, setor) == 0)
{
quantidade+=produtos[i].quantidade;
aux++;
}
}
if(aux==0)
{
printf("Setor nao encontrado.\n");
}
else
{
printf("%d\n",quantidade);
}
break;
case 3:
printf("\nTotal de Capital:\n");
for(i=0; i<qtd; i++)
{
preco+=produtos[i].preco;
quantidade=produtos[i].quantidade;
}
capital=preco*quantidade;
printf("R$%f\n",capital);
break;
case 4:
printf("Terminou.\n");
break;
default:
printf("Opcao invalida.\n");
}
}
while(opc!=4);
return 0;
}
Questão 5
Implemente um programa para controlar despesas e dados de um condomínio de apartamentos. Os dados de cada apartamento são armazenados em um vetor de estruturas. Para cada apartamento tem-se os seguintes dados:
• nome (do responsável) : char[30]
• número (do apartamento) : inteiro • área (em m2) : float
• quantidade de moradores : inteiro
• valor (taxa de condomínio a ser pago no mês) : float
Declarar o vetor Condominio do tipo da estrutura definida acima, de tamanho 40.
O programa deverá implementar um menu contendo as seguintes funcionalidades:
(a) Incluir dados no vetor.
(b) Listar a área total do condomínio.
(c) Listar o total a ser arrecadado pelo condominio no mês - valor à pagar de todos os apartamentos
(d) Listar os dados do apartamento que tem o maior número de moradores. Em caso de haver mais de um, Listar todos.
struct condominio
{
char nome[50];
int numero;
int quantidade;
float valor;
float area;
};
int main()
{
struct condominio condominio[40];
float valor,area,at=0,tarr=0;
int numero,quantidade,opc,qtd=0,i,aux;
char n[50];
do
{
printf("\n\n * Sistema do Condomínio * \n\n");
printf("1-Inserir dados do apartamento.\n");
printf("2-Listar area total do condominio.\n");
printf("3-Listar total arrecadado.\n");
printf("4-listar dados do apartamento com maior numero de
moradores.\n");
printf("5-Sair.\n");
printf("Opção desejada: ");
scanf("%d",&opc);
switch(opc)
{
case 1:
if(qtd<40)
{
printf("Digite o nome do responsavel:\n");
scanf("%s",&condominio[qtd].nome);
printf("Digite o numero do apartamento:\n");
scanf("%d",&condominio[qtd].numero);
printf("Digite a area do apartamento:\n");
scanf("%f",&condominio[qtd].area);
printf("Digite a quantidade de moradores do apartamento:\n");
scanf("%d",&condominio[qtd].quantidade);
printf("Digite o valor da taxa de condominio mensal: \n");
scanf("%f",&condominio[qtd].valor);
i++;
}
break;
case 2:
for(i=0; i<qtd; i++)
{
at+=condominio[i].area;
}
printf("Area total e: %f m^2\n",at);
break;
case 3:
for(i=0; i<qtd; i++)
{
tarr+=condominio[i].valor;
}
printf("R$%f\n",tarr);
break;
case 4:
aux=condominio[0].quantidade;
for(i=0; i<qtd; i++)
{
if(aux<(condominio[i].quantidade))
{
aux=condominio[i].quantidade;
if(condominio[i].quantidade==aux)
{
printf ("Nome do responsavel:%s \n- Numero:%d –
Area:%fm^2 \n-Valor da Taxa:%f
\n",condominio[i].nome,condominio[i].numero,condominio[i].area,condominio[i].val
or);
}
}
}
break;
default:
printf("Opcao invalida.\n");
}
}
while(opc!=5);
return 0;
}
Questão 6 () Implemente um programa para simular uma agenda de telefones. Para cada pessoa deve-se ter os seguintes dados:
• Nome: char[30]
• E-mail: char[30]
• Endereço (contendo campos para Rua, numero, complemento, bairro, cep, cidade, estado, país)
• Telefone (contendo campo para DDD e número)
• Data de aniversário (contendo campo para dia, mês, ano) • Observações : Uma linha (char[30]) para alguma observações especial.
Declarar o vetor Agenda do tipo da estrutura definida acima, de tamanho 100.
O programa deverá implementar um menu contendo as seguintes funcionalidades:
(a) Incluir dados no vetor.
(b) busca por primeiro nome: Listar os dados da pessoa com esse nome (se tiver mais de uma pessoa, listar para todas)
(c) busca por mês de aniversário: Listar os dados de todas as pessoas que fazem aniversário nesse mês.
(d) busca por dia e mês de aniversário: Listar os dados de todas as pessoas que fazem aniversário nesse dia e mês.
(e) retira pessoa: retira todos os dados dessa pessoa e desloca todos os elementos seguintes do vetor para a posição anterior.
struct contatos
{
char nome[50];
char sobrenome[50];
char email[50];
char rua[50];
char complemento[50];
char bairro[50];
char cidade[50];
char estado[50];
char pais[50];
char telefone[50];
char cep[50];
int numero,dia,mes,ano;
};
int main()
{
struct contatos agenda[100];
int i=0,j,k,opc,m,d,cont;
char n[50],c[50];
do
{
printf("1-Inserir dados.\n");
printf("2-Buscar contatos por primeiro nome.\n");
printf("3-Buscar contatos por mes de aniversario.\n");
printf("4-Buscar contatos por dia e mes de aniversario.\n");
printf("5-Excluir contato.\n");
printf("6-Listar todos os contatos.\n");
printf("7-Sair.\n");
scanf("%d",&opc);
switch(opc)
{
case 1:
if(i<100)
{
printf("Informe Nome: \n");
scanf("%s",&agenda[i].nome);
printf("Informe Sobrenome:\n");
scanf("%s",&agenda[i].sobrenome);
printf("Informe email:\n");
scanf("%s",&agenda[i].email);
getchar();
printf("Informe o endereco:\n");
printf("Rua:\n");
scanf("%49[^\n]s",&agenda[i].rua);
getchar();
printf("Numero:\n");
scanf("%d",&agenda[i].numero);
printf("Complemento:\n");
scanf("%s",&agenda[i].complemento) ;
printf("Bairro:\n");
scanf("%s",&agenda[i].bairro) ;
printf("Cep:\n");
scanf("%s",&agenda[i].cep) ;
printf("Cidade:\n");
scanf("%s",&agenda[i].cidade) ;
printf("Estado:\n");
scanf("%s",&agenda[i].estado) ;
printf("Pais:\n");
scanf("%s",&agenda[i].pais) ;
printf("Digite o telefone:\n");
scanf("%s",&agenda[i].telefone) ;
printf("Digite a data de aniversario(dia/mes/ano):\n");
scanf("%d %d %d",&agenda[i].dia,&agenda[i].mes,&agenda[i].ano) ;
i++;
printf("Dados Inseridos com sucesso!!\n");
}
break;
case 2:
getchar();
printf("informe o nome a pesquisar:\n");
scanf("%49[^\n]s",&n);
for(j=0; j<i; j++)
{
if(strcmp(agenda[j].nome,n)==0)
{
printf("Nome:%s\nSobrenome:%s\nemail:%s\nEndereco:\nRua:%s\nNumero:%d\nComplemen
to:%s\nBairro:%s\nCep:%s\nCidade:%s\nEstado:%s\nPais:%s\nData
deaniversario:%d/%d/%d\n\n",agenda[j].nome,agenda[j].sobrenome,agenda[j].email,a
genda[j].rua,agenda[j].numero,agenda[j].complemento,agenda[j].bairro,agenda[j].c
ep,agenda[j].cidade,agenda[j].estado,agenda[j].pais,agenda[j].dia,agenda[j].mes,
agenda[j].ano);
}
else
{
printf("Contato nao encontrado.\n");
}
}
break;
case 3:
printf("informe o mes a pesquisar:\n");
scanf("%d",&m);
for(j=0; j<i; j++)
{
if(agenda[j].mes==m)
{
printf("Nome:%s\nSobrenome:%s\nemail:%s\nEndereco:\nRua:%s\nNumero:%d\nComplemen
to:%s\nBairro:%s\nCep:%s\nCidade:%s\nEstado:%s\nPais:%s\nData
deaniversario:%d/%d/%d\n\n",agenda[j].nome,agenda[j].sobrenome,agenda[j].email,a
genda[j].rua,agenda[j].numero,agenda[j].complemento,agenda[j].bairro,agenda[j].cep,agenda[j].cidade,agenda[j].estado,agenda[j].pais,agenda[j].dia,agenda[j].mes,
agenda[j].ano);
}
else
{printf("Contato nao encontrado.\n");}
break;
case 4:
printf("Informe o dia a pesquisar:\n");
scanf("%d",&d);
printf("Informe o mes a pesquisar:\n");
scanf("%d",&m);
for(j=0; j<i; j++)
{
if((agenda[j].mes==m)&&(agenda[j].dia==d))
{
printf("Nome:%s\nSobrenome:%s\nemail:%s\nEndereco:\nRua:%s\nNumero:%d\nComplemen
to:%s\nBairro:%s\nCep:%s\nCidade:%s\nEstado:%s\nPais:%s\nData
deaniversario:%d/%d/%d\\n",agenda[j].nome,agenda[j].sobrenome,agenda[j].email,ag
enda[j].rua,agenda[j].numero,agenda[j].complemento,agenda[j].bairro,agenda[j].ce
p,agenda[j].cidade,agenda[j].estado,agenda[j].pais,agenda[j].dia,agenda[j].mes,a
genda[j].ano);
}
else
{
printf("Nenhum contato encontrado.\n");
}
}
break;
case 5:
cont=0;
printf("Digite o contato a ser excluido:\n");
scanf("%s",&c);
for(j=0; j<i; j++)
{
if(strcmp(agenda[j].nome,c)==0)
{
cont=1;
printf("Contato Excluido.\n");
break;
}
}
if(cont==1)
{
for(k=j; k<i; k++)
{
agenda[k]=agenda[k+1];
}
i--;
}
else
{
printf("Contato nao encontrado.\n");
}
break;
case 6:
for(j=0; j<i; j++)
{
printf("Nome:%s\nSobrenome:%s\nemail:%s\nEndereco:\nRua:%s\nNumero:%d\nComplemen
to:%s\nBairro:%s\nCep:%s\nCidade:%s\nEstado:%s\nPais:%s\nData
deaniversario:%d/%d/%d\n\n",agenda[j].nome,agenda[j].sobrenome,agenda[j].email,a
genda[j].rua,agenda[j].numero,agenda[j].complemento,agenda[j].bairro,agenda[j].c
ep,agenda[j].cidade,agenda[j].estado,agenda[j].pais,agenda[j].dia,agenda[j].mes,
agenda[j].ano);
}
break;
case 7:
printf("Terminou.\n");
break;
default:
printf("Opcao invalida.\n");
}
}
while(opc!=7);
return 0;
}
Questão 7
Implemente um programa para simular o controle acadêmico de uma escola. Para cada aluno deve-se ter os seguintes dados:
• Matricula: inteiro
• Nome: char[30]
• Data de nascimento (contendo campo para dia, mês, ano)
• Serie: inteiro
• Curso: char[30]
• Notas: float - Cada série possui 10 disciplinas e cada disciplina possui 04 notas por ano (uma por bimestre). Cada nota poderá estar no intervalo de zero a dez.
Declarar o vetor Alunos do tipo da estrutura definida acima, de tamanho 200.
O programa deverá implementar um menu contendo as seguintes funcionalidades:
(a) Incluir dados no vetor. (Nome, Data de Nascimento, Serie e Curso.
(b) Lançar notas: Solicitar ao usuário que informe a matricula do aluno, a disciplina e o bimestre para a nota a ser lançada.
(c) Calcular média no bimestre: Solicitar ao usuário que informe a matricula do aluno e o bimestre que se deseja calcular a média. A média só poderá ser calculada, se as notas de todas as disciplinas naquele bimestre estiverem lançadas. Caso não seja possível calcular enviar mensagem.
(d) Verificar aprovação: Solicitar ao usuário que informe a matricula do aluno e calcular se ele possui média anual no mínimo 6 (seis) em todas as disciplinas. Só poderá ser calculado se todas as notas de todas as disciplinas em todos os bimestres estiverem lançadas, Caso não seja possível calcular enviar mensagem.
struct escola
{
char nome[50],curso[50];
int matricula,serie,dia,mes,ano;
float notas[10][4];
};
int main()
{
struct escola vetalunos[200];
int i=0,j,op,m,b,k,l,cont=0,cont2=0;
char d[50] ;
float media=0,soma=0;
for(i=0; i<200; i++)
{
for(k=0; k<10; k++)
{
for(l=0; l<4; l++)
{
vetalunos[i].notas[k][l]=-1;
}
}
}
do
{
printf("1-Inserir dados.\n");
printf("2-Lancar notas.\n");
printf("3-Media do bimestre.\n");
printf("4-Verificar aprovacao.\n");
printf("5-Sair.\n");
scanf("%d",&op);
switch(op)
{
case 1:
i=0;
if(i<200)
{
printf("Informe a matricula do aluno: \n");
scanf("%d",&vetalunos[i].matricula);
getchar();
printf("Informe Nome do aluno: \n");
scanf("%49[^\n]s",&vetalunos[i].nome);
printf("Informe a data de nascimento(dia/mes/ano):\n");
scanf("%d %d
%d",&vetalunos[i].dia,&vetalunos[i].mes,&vetalunos[i].ano);
printf("Informe serie:\n");
scanf("%d",&vetalunos[i].serie);
printf("Informe curso:\n");
scanf("%s",&vetalunos[i].curso);
i++;
printf("Inserido com sucesso!!\n");
}
else
{
printf("Quantidade maxima atingida.\n");
}
break;
case 2:
for(j=0; j<i; j++)
{
printf("Informe a matricula do aluno:\n");
scanf("%d",&m);
if(vetalunos[j].matricula==m)
{
printf("Digite a diciplina(1 - Disciplina 1\n 2 - Disciplina
2\n 3 -Disciplina 3\n");
scanf("%d",&k);
printf("Digite o bimestre:\n");
scanf("%d",&l);
printf("Digite a nota:\n");
scanf("%f",&vetalunos[j].notas[k-1][l-1]);
}
else
{
printf("Aluno nao encontrado.\n");
}
}
break;
case 3:
for(j=0; j<i; j++)
{
printf("Informe a matricula do aluno:\n");
scanf("%d",&m);
if(vetalunos[j].matricula==m)
{
printf("Digite o bimestre:\n");
scanf("%d",&l);
for(k=0; k<10; k++)
{
if(vetalunos[j].notas[k][l-1]==-1)
{
cont++;
}
}
if(cont!=0)
{
printf("Ha notas faltando.\n");
}
else
{
for(k=0; k<10; k++)
{
soma+=vetalunos[j].notas[k][l-1];
media=soma/10;
}
printf("%3.2f\n",media);
}
}
media=0;
}
break;
case 4:
soma=0;
media=0;
for(j=0; j<i; j++)
{
printf("Informe a matricula do aluno:\n");
scanf("%d",&m);
if(vetalunos[j].matricula==m)
{
for(k=0; k<10; k++)
{
for(l=0; l<4; l++)
{
if(vetalunos[j].notas[k][l]==-1)
{
cont++;
}
}
}
if(cont!=0)
{
printf("Ha notas faltando.\n");
}
else
{
for(k=0; k<10; k++)
{
for(l=0; l<4; l++)
{
soma+=vetalunos[j].notas[k][l];
}
media=soma/4;
if(media<6)
{
cont2++;
}
}
if(cont2!=0)
{
printf("Reprovado.\n");
}
else
{
printf("Aprovado.\n");
}
}
}
}
}
}
while(op!=5);
return 0;
}
Questão 8 () Implemente um programa que contenha uma estrutura para descrever os CDs de um acervo pessoal. contendo os seguintes campos:
• Código: inteiro
• Título: char[30]
• Artista: char[30]
• Ano de lançamento: inteiro
• Estilo: char[30]
• Quantidade de Músicas: inteiro
Declarar o vetor Musica do tipo da estrutura definida acima, de tamanho 400.
O programa deverá implementar um menu contendo as seguintes funcionalidades:
(a) Incluir dados no vetor.
(b) Solicitar ao usuário que informe o nome de um artista e listar todos os CDs deste artista (Título, Ano de lançamento, Estilo e Quantidade de músicas)
(c) Solicitar ao usuário que informe um estilo e listar todos os CDs deste estilo (Título, Artista, Ano de lançamento e Quantidade de músicas).
(d) Listar CDs com maior quantidade de músicas. (Título, Artista, Ano de lançamento, Estilo e Quantidade de músicas). Em caso de haver mais de um, Listar todos.
struct cd
{
char titulo[50],artista[50],estilo[50];
int ano,quantidade,codigo ;
};
int main()
{
struct cd vetmusica[400];
int i=0,j,op,a,q,c,aux,cont;
char t[50],art[50],e[50];
float p;
do
{
printf("1-Inserir dados.\n");
printf("2-Listar cds por artista.\n");
printf("3-Listar cds por estilo. \n");
printf("4-Cd(s) com maior numero de musicas. \n");
printf("5-Sair.\n");
scanf("%d",&op);
switch(op)
{
case 1:
if(i<400)
{
getchar();
printf("Informe o titulo:\n");
scanf("%49[^\n]s",&vetmusica[i].titulo);
getchar();
printf("Informe o artista:\n");
scanf("%49[^\n]s",&vetmusica[i].artista);
printf("Informe o estilo:\n");
scanf("%s",&vetmusica[i].estilo);
while((strcmp(vetmusica[i].estilo,"sertanejo")==0)||
(strcmp(vetmusica[i].estilo,"Sertanejo")==0)||(strcmp(vetmusica
[i].estilo,"funk")==0)||
(strcmp(vetmusica[i].estilo,"Funk")==0)||(strcmp(vetmusica
[i].estilo,"pagode")==0)||
(strcmp(vetmusica[i].estilo,"Pagode")==0))
{
printf("Estilo Invalido. \nDigite um estilo valido: \n");
scanf("%s",&vetmusica[i].estilo);
}
printf("Informe o codigo:\n");
scanf("%d",&vetmusica[i].codigo);
printf("Informe o ano de lancamento:\n");
scanf("%d",&vetmusica[i].ano);
printf("Informe a quantidade de musicas:\n");
scanf("%d",&vetmusica[i].quantidade);
i++;
printf("Inserido com sucesso!!\n");
}
else
{
printf("Quantidade maxima atingida.\n");
}
break;
case 2:
cont=0;
getchar();
printf("Informe o artista a ser pesquisado:\n");
scanf("%49[^\n]s",&art);for(j=0; j<i; j++)
{
if(strcmp(vetmusica[j].artista,art)==0)
{
printf("Titulo:%s - Ano de Lancamento:%d - Estilo:%s -
Quantidade
deMusicas:%d\n",vetmusica[j].titulo,vetmusica[j].ano,vetmusica[j].estilo,vetmusi
ca[j].quantidade,cont++);
}
}
if(cont==0)
{
printf("Artista nao encontrado.\n");
}
break;
case 3:
cont=0;
printf("Informe o estilo a ser pesquisado:\n");
scanf("%s",&e);
for(j=0; j<i; j++)
{
if(strcmp(vetmusica[j].estilo,e)==0)
{
printf("Titulo:%s - Ano de Lancamento:%d - Artista:%s -
Quantidade
deMusicas:%d\n",vetmusica[j].titulo,vetmusica[j].ano,vetmusica[j].artista,vetmus
ica[j].quantidade);
cont++;
}
}
if(cont==0)
{
printf("Artista nao encontrado.\n");
}
break;
case 4:
aux=vetmusica[0].quantidade;
for(j=0; j<i; j++)
{
if(aux<(vetmusica[j].quantidade))
{
aux=vetmusica[j].quantidade;
if(vetmusica[j].quantidade==aux)
{
printf("Titulo:%s - Ano de Lancamento:%d - Artista:%s -
Quantidade deMusicas:%d -
Estilo:%s\n",vetmusica[j].titulo,vetmusica[j].ano,vetmusica
[j].artista,vetmusica[j].quantidade,vetmusica[j].estilo);
}
}
}
break;
}
}
while(op!=5);
return 0;
}
Questão 9
Implemente um programa que contenha uma estrutura ContaBancaria, com os seguintes campos:
• Numero da Conta: inteiro
• Nome do cliente: char[30]
• Tipo: inteiro (1 - Conta Corrente ou 2 - Conta Poupança)
• Saldo: float
Declarar o vetor Contas do tipo da estrutura definida acima, de tamanho 50.
O programa deverá implementar um menu contendo as seguintes funcionalidades:
(a) Incluir dados no vetor. Iniciar uma conta com um número, nome do cliente, tipo e saldo inicial.
(b) Depositar um valor: solicitar o número da conta e o valor do deposito.
(c) Sacar umvalor: solicitaronúmeroda conta eovalor dosaque. Osaque sópode ser realizado se houver saldo disponível. Se não for possível enviar mensagem.
(d) Imprimir o saldo: solicitar o número da conta e listar o nome do cliente, o tipo da conta e o valor do saldo.
(e) Montante do banco: solicitar o tipo da conta e listar o valor em dinheiro existente no banco para aquele tipo de conta(somatório de todos os saldos de todas as contas deste tipo)
struct banco
{
char nome[50];
int numero,tipo;
float saldo;
};
int main()
{
struct banco vetcontas[50];
int i=0,j,op,t,nc;
char n[50];
float s,v,saldo,sptc=0;
do
{
printf("1-Inserir dados da conta.\n");
printf("2-Fazer Deposito.\n");
printf("3-Fazer Saque.\n");
printf("4-Imprimir Saldo.\n");
printf("5-Montante do Banco.\n");
printf("6-Sair.\n");
scanf("%d",&op);
switch(op)
{
case 1:
if(i<50)
{
printf("Digite o numero da conta:\n");
scanf("%d",&vetcontas[i].numero);
printf("Digite o nome do cliente:\n");
getchar();
scanf("%49[^\n]s",&vetcontas[i].nome);
printf("Digite o tipo da conta\n(1-Conta corrente;2-Conta
Poupança\n");
scanf("%d",&vetcontas[i].tipo);
printf("Digite o Saldo inicial:\n");
scanf("%f",&vetcontas[i].saldo);
i++;
printf("\nInserido com sucesso!!\n");
}
else
{
printf("\nQuantidade maxima atingida.\n");
}
break;
case 2:
printf("Digite o numero da conta:\n");
scanf("%d",&nc);
printf("Digite o valor a ser depositado:\n");
scanf("%f",&v);
for(j=0; j<i; j++)
{
saldo=vetcontas[j].saldo;
if(vetcontas[j].numero==nc)
{
vetcontas[j].saldo+=v;
}
}
printf("deposito realizado com sucesso!\n");
break;
case 3:
printf("Digite o numero da conta:\n");
scanf("%d",&nc);
printf("Digite o valor a ser sacado:\n");
scanf("%f",&v);
for(j=0; j<i; j++)
{
if(vetcontas[j].numero==nc)
{
if(vetcontas[j].saldo>=v)
{
vetcontas[j].saldo-=v;
printf("Saque Realizado com sucesso! \n");
}
else
{
printf("Saldo insuficiente.\n");
}
}
}
break;
case 4:
printf("Digite o numero da conta:\n");
scanf("%d",&nc);
for(j=0; j<i; j++)
{
if(vetcontas[j].numero==nc)
{
printf("Nome do cliente: %s - Tipo de Conta: %d -
Saldo:%3.2f \n",vetcontas[j].nome,vetcontas[j].tipo,vetcontas[j].saldo);
}
}
break;
case 5:
printf("Digite o Tipo da conta:\n");
scanf("%d",&t);
printf("Saldo total no banco para o tipo de conta informado:\n");
for(j=0; j<i; j++)
{
if(vetcontas[j].tipo==t)
{
sptc+=vetcontas[j].saldo;
}
}
printf("%3.2f\n",sptc);
sptc=0;
break;
case 6:
printf("Terminou.\n");
break;
default:
printf("Opcao invalida.\n");
}
}
while(op!=6);
return 0;
}

Continue navegando