FranciscoSoccol

Lista 07 - Exercicio 09

Aug 9th, 2013
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.23 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define MAX 500
  4.  
  5. //structs
  6. struct TipoDados{
  7.     float potencia, cilindradas, valvulas;
  8.     };
  9.  
  10. struct TipoVeiculo{
  11.     char marca[30], modelo[40];
  12.     int ano;
  13.     float performace;
  14.     struct TipoDados tecnicos;
  15.     };
  16.  
  17. //prototipos das funçoes
  18. void menu(struct TipoVeiculo veiculos[]);
  19. int performaceEstrutural(struct TipoVeiculo veiculos[]);
  20. void exibeTodos(struct TipoVeiculo veiculos[]);
  21. float maiorPerformace(struct TipoVeiculo veiculos[]);
  22.  
  23. int main()
  24. {
  25.     int contVeiculos;
  26.     struct TipoVeiculo veiculos[MAX];
  27.     menu(veiculos);
  28.     contVeiculos=performaceEstrutural(veiculos);
  29.     exibeTodos(veiculos);
  30.     printf("\nQuantidade de veiculos com performace inferior a 150: %d\n",contVeiculos);
  31.     return 0;
  32. }
  33.  
  34. //Funçao menu
  35. void menu(struct TipoVeiculo veiculos[])
  36. {
  37.     int i;
  38.     for(i=0;i<MAX;i++){
  39.         printf("\nFicha cadastral do veiculo %d.\n",i+1);
  40.         printf("Marca: ");
  41.         fflush(stdin);
  42.         gets(veiculos[i].marca);
  43.         printf("Modelo: ");
  44.         fflush(stdin);
  45.         gets(veiculos[i].modelo);
  46.         printf("Ano: ");
  47.         scanf("%d",&veiculos[i].ano);
  48.         printf("Potencia: ");
  49.         scanf("%f",&veiculos[i].tecnicos.potencia);
  50.         printf("Cilindradas: ");
  51.         scanf("%f",&veiculos[i].tecnicos.cilindradas);
  52.         printf("Valvulas: ");
  53.         scanf("%f",&veiculos[i].tecnicos.valvulas);}
  54. }
  55.  
  56. //funçao para calcular a performace estrutural do veicul
  57. int performaceEstrutural(struct TipoVeiculo veiculos[])
  58. {
  59.     int i, contVeiculos=0;
  60.     for(i=0;i<MAX;i++)
  61.         {
  62.         if(veiculos[i].tecnicos.valvulas>=16){
  63.             veiculos[i].performace=((veiculos[i].tecnicos.potencia*3)+veiculos[i].tecnicos.potencia)/veiculos[i].tecnicos.valvulas;
  64.             if(veiculos[i].performace<150)
  65.                 contVeiculos++;}//soma quantidade de veiculos com performace inferior a 150
  66.             else{
  67.                 veiculos[i].performace=((veiculos[i].tecnicos.potencia*3)+veiculos[i].tecnicos.potencia)/veiculos[i].tecnicos.valvulas;
  68.                 if(veiculos[i].performace<150)
  69.                 contVeiculos++;}//soma quantidade de veiculos com performace inferior a 150
  70.         }
  71.     return contVeiculos;
  72. }
  73.  
  74. //funçao exibe tods s veiculos
  75. void exibeTodos(struct TipoVeiculo veiculos[])
  76. {
  77.     int i;
  78.     system("cls");
  79.     for(i=0;i<MAX;i++)
  80.         {
  81.         printf("Ficha cadastral do veiculo %d.\n",i+1);
  82.         printf("Marca: %s\n",veiculos[i].marca);
  83.         printf("Modelo: %s\n",veiculos[i].modelo);
  84.         printf("Ano: %d\n",veiculos[i].ano);
  85.         printf("Potencia: %.2f\n",veiculos[i].tecnicos.potencia);
  86.         printf("Cilindradas: %.2f\n",veiculos[i].tecnicos.cilindradas);
  87.         printf("Valvulas: %.2f\n",veiculos[i].tecnicos.valvulas);
  88.         printf("Performace Estrutural: %.2f\n\n",veiculos[i].performace);
  89.         }
  90.     printf("Maior performace estrutural: %.2f\n",maiorPerformace(veiculos));
  91.  
  92. }
  93.  
  94. //funçao que calcula a maior performace
  95. float maiorPerformace(struct TipoVeiculo veiculos[])
  96. {
  97.     int i;
  98.     float aux=0;
  99.     for(i=0;i<MAX;i++)
  100.         if(veiculos[i].performace>aux)
  101.             aux=veiculos[i].performace;//separa a maior performace
  102.  
  103.     return aux;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment