Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Item de escolha 8.
- Neste item é executada a opção 8 : Pesquisa por marca com mais carros
- */
- #include <stdio.h>
- #include <string.h>
- void Escolha8()
- {
- //definição de MARCA para criar uma estrutura
- typedef struct Marca
- {
- char marcano[15]; //nome da marca do carro
- int marcanu; //numero de carros encontrados
- }MARCA;
- //variáveis do ficheiro e outras necessárias
- char matricula[10], marca[15], modelo[25];
- int ano, dono, cod, cilindrada, i=0, n, aux=0;
- MARCA v[20];
- //inicialização das variáveis da estrutura
- for(i=0; i<20; i++)
- {
- v[i].marcanu = 0;
- strcpy(v[i].marcano, "Nada");
- }
- //variáveis de ficheiros e abertura destes
- FILE *carros; FILE *historico;
- carros = fopen("Carros.txt", "a+");
- historico = fopen("Histórico.txt", "a+");
- while(!feof(carros))//pesquisa linha por linha do ficheiro
- {
- //atribuição de valores às variáveis
- fscanf(carros, "%s %s %s %d %d %d %d", matricula, marca, modelo, &ano, &dono, &cod, &cilindrada);
- for(i=0, n=0; i<20, n==0; i++) //ciclo de pesquisa se na estruta existe algum carro com a marca do carro desta linha
- {
- if(stricmp("Nada", v[i].marcano) == 0) //se ainda nao foi atribuido uma marca a i da estrutura
- {
- strcpy(v[i].marcano, marca); //atribuir a marca do carro desta linha a i
- v[i].marcanu++; // aumentar em 1 o numero de carros encontrados
- n=1; //acabar com o cilco pois já foi adicionado o carro
- }
- else if(strcmp(v[i].marcano, marca) == 0) //caso i já tenha uma marca atribuida e seja a marca do carro desta linha
- {
- v[i].marcanu++; //aumentar em 1 o numero de carros encontrados
- n=1; //acabar com o ciclo pois já foi adicionado o carro
- }
- }
- }
- //pesquisa pela estrutura qual a marca com mais carros
- n=v[0].marcanu; //seja n o numero de carros da primeira parte da estrutura
- for(i=1; i<20; i++)
- if(v[i].marcanu > n)// verificar se o numero de carros é maior que n
- {
- n=v[i].marcanu; //se for atribuir a n esse numero de carros
- aux = i; //usar a variável auxiliar para saber em que parte da estrutura está a marca com mais carros
- }
- //apresentação de resultados e fim da função
- printf("A marca com mais carros e: %s com %d carros.\n", v[aux].marcano, n);
- printf("\n=========================================================\n\n");
- //escrever no histórico a função executada e fechar ficheiros
- fprintf(historico, "Procura pela marca com mais carros (%s as %s)\n", __DATE__, __TIME__);
- fclose(carros);
- fclose(historico);
- }
Advertisement
Add Comment
Please, Sign In to add comment