Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 6. Desenvolva um programa para permitir o cadastro de 500 veículos.
- Cada veículo deve ser representado por uma estrutura formada por:
- um marca (máximo de 30 caracteres);
- um modelo (máximo de 40 caracteres);
- o ano de fabricação e um conjunto de dados técnicos;
- O conjunto de dados técnicos, que também deve ser representado por uma estrutura, é composto de:
- potência em CV;
- cilindradas e número de válvulas.
- Elabore uma função para calcular a performance estrutural do veículo através da seguinte fórmula:
- dobro da potência somado com o valor das cilindradas, e dividido pela quantidade de válvulas.
- Se a quantidade de válvulas for maior ou igual a 16, multiplique a potência por 3 ao invés de 2.
- Exiba todas as informações cadastradas, incluindo a performance estrutural.
- Calcule e exiba a quantidade de veículos cuja performance estrutural é inferior a 150.
- Exiba a maior performance estrutural entre os 500 veículos digitados.
- Obs.:
- sempre que possível reaproveite o código através da modularização;
- escreva o protótipo da função que calcula a performance estrutural;
- use somente variáveis locais para resolver este problema.
- */
- #include<stdio.h>
- #include<stdlib.h>
- #define MAX 2
- struct DadosTecnicos{
- float potencia;
- float cilindradas;
- int valvulas;
- };
- struct Agenda{
- char marca[31];
- char modelo[41];
- int fabricacao;
- struct DadosTecnicos Auto;
- };
- float calculaPerformance(float pot, float cil, int val);
- void finalizaPrograma(void);
- int main(){
- int i, cont=0;
- float performance[MAX], maior=0;
- struct Agenda carro[MAX];
- //entrada de dados
- for(i=0;i<MAX;i++){
- printf("Cadastro %d\n", i+1);
- printf("\tDigite a marca: ");
- gets(carro[i].marca);
- printf("\tDigite o modelo: ");
- gets(carro[i].modelo);
- printf("\tDigite o ano de fabricacao: ");
- scanf("%d", &carro[i].fabricacao);
- printf("\tDigite a potencia (CV): ");
- scanf("%f", &carro[i].Auto.potencia);
- printf("\tDigite as cilindradas: ");
- scanf ("%f", &carro[i].Auto.cilindradas);
- printf("\tDigite o numero de valvulas: ");
- scanf ("%d", &carro[i].Auto.valvulas);
- performance[i] = calculaPerformance(carro[i].Auto.potencia, carro[i].Auto.cilindradas, carro[i].Auto.valvulas);
- fflush(stdin);
- if(performance[i]<150)
- cont++;
- if(performance[i]>maior)
- maior = performance[i];
- printf("\n");
- }
- printf("\n\nSAIDA DE DADOS\n\n");
- //saida de dados
- for(i=0;i<MAX;i++){
- printf("Cadastro %d\n", i+1);
- printf("\tMarca: %s\n", carro[i].marca);
- printf("\tModelo: %s\n",carro[i].modelo);
- printf("\tAno de fabricacao: %d\n", carro[i].fabricacao);
- printf("\tPotencia (CV): %.2f\n", carro[i].Auto.potencia);
- printf("\tCilindradas: %.2f\n", carro[i].Auto.cilindradas);
- printf("\tNumero de valvulas: %d\n", carro[i].Auto.valvulas);
- printf("\tPeformance = %.2f\n", performance[i]);
- printf("\n");
- }
- printf("A maior performance : %.2f\n", maior);
- printf("Performance inferior a 150: %d", cont);
- finalizaPrograma();
- }
- float calculaPerformance(float pot, float cil, int val){
- float performance;
- if (val>=16){
- performance = (pot*3+cil)/val;
- return performance;
- }
- else{
- performance = (pot*2+cil)/val;
- return performance;
- }
- }
- void finalizaPrograma(void){
- printf("\n\n\n");
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement