Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Igor Vargas

C Consulta de carros em uma concessionaria

Recommended Posts

Eai galera. Estou com um problema nesse condigo, onde quando eu escolho a segunda opção ele da um erro depois que voce digita a placa do seu carro. Estou achando que a comparação de strings não esta funcionando, mas n acho o motivo de não estar.

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

	struct FastCar
{
	int ano_F;
	float preco;
	char descricao[50],fabricante[20],cor[20],placa[6];
	
	
	
};

void cadastro(struct FastCar op_Um[1] ){
	int x;
	
	printf("-------------------------------------------\n");
	printf("-----voce Selecionou Cadastrar Automovel---\n");
	printf("-------------------------------------------\n");
	for(x=0; x<1; x++){
		fflush(stdin);
	printf("Digite a Placa do Seu carro: ");
	gets(op_Um[x].placa);
	strupr(op_Um[x].placa);
	printf("Digite a Descricao do seu carro: ");
	gets(op_Um[x].descricao);
	printf("Digite o Fabricante do seu carro : ");
	gets(op_Um[x].fabricante);
	printf("Digite a Cor do seu Carro: ");
	gets(op_Um[x].cor);
	printf("Digite o Ano de fabricação do seu carro: ");
	scanf("%d",&op_Um[x].ano_F);
	printf("Digite o Preco do seu carro:");
	scanf("%f",&op_Um[x].preco);
	
	}
		
	
}

int consulta(struct FastCar op_Dois[1]){
	int x,valor;
	char nova_P[6];
	printf("-------------------------------------------\n");
	printf("-----voce Selecionou Consultar Automovel---\n");
	printf("-------------------------------------------\n");
	fflush(stdin);
	printf("Digite a placa do carro: ");
	gets(nova_P);
	for(x=0; x<1; x++){
		int salva=strcmp(op_Dois[x].placa, nova_P[x]);
		if(salva==0){
			fflush(stdin);
			puts(op_Dois[x].descricao);
			puts(op_Dois[x].fabricante);
			puts(op_Dois[x].cor);
			printf("%d\n",op_Dois[x].ano_F);
			printf("%f",op_Dois[x].preco);	
			}
			else{
			return	valor=1;
		}		
	}
	if(valor==1){
		printf("Essa Placa nao existe ou foi digitada incorreta");
	}
}

void relatorio(struct FastCar op_Tres[1]){
	int x;
	printf("-------------------------------------------\n");
	printf("-----voce Selecionou Gerar Relatorio---\n");
	printf("-------------------------------------------\n");
	printf("Todos Os Carros");
	for(x=0; x<1; x++){
			puts(op_Tres[x].placa);
			puts(op_Tres[x].descricao);
			puts(op_Tres[x].fabricante);
			puts(op_Tres[x].cor);
			printf("%d\n",op_Tres[x].ano_F);
			printf("%f",op_Tres[x].preco);
		
	}
	
}


main(){
	struct FastCar Carros[1];	
	int escolha;
	do{
	
	printf("1. Cadastrar automovel\n");
	printf("2. Consultar automovel\n");
	printf("3. Gerar Relatorio\n");
	printf("4. Sair do Programa\n");
	scanf("%d",&escolha);
	if(escolha == 1){
		cadastro(Carros);
		}else if(escolha == 2){
			consulta(Carros);
	  		}else if(escolha == 3){
	    		relatorio(Carros);
		    	}else if(escolha == 4){
		   			break;
		   }	
	
	}while(escolha!= 4);
	
	
	
	
	
	
	
	
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Igor Vargas    na função consulta você está comparando  com a variável 

nova_p[x]

então esse seria o caractere  x da  variável ,  e o strcmp só funciona com string , então coloque a variável sem os colchetes e o x ,  e então seu código com algumas modificações ficaria assim  :

#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
struct FastCar{
    int ano_F;
    float preco;
    char descricao[50],fabricante[20],cor[20],placa[6];
};
int cont=0;
void cadastro(struct FastCar op_Um[100] ){
    char sair='n';
    printf("-------------------------------------------\n");
    printf("-----voce Selecionou Cadastrar Automovel---\n");
    printf("-------------------------------------------\n");
    do{
        fflush(stdin);
        printf("Digite a Placa do Seu carro: ");
        gets(op_Um[cont].placa);
        strupr(op_Um[cont].placa);
        printf("Digite a Descricao do seu carro: ");
        gets(op_Um[cont].descricao);
        printf("Digite o Fabricante do seu carro : ");
        gets(op_Um[cont].fabricante);
        printf("Digite a Cor do seu Carro: ");
        gets(op_Um[cont].cor);
        printf("Digite o Ano de fabricação do seu carro: ");
        scanf("%d",&op_Um[cont].ano_F);
        printf("Digite o Preco do seu carro:");
        scanf("%f",&op_Um[cont].preco);
        cont++;
        printf("Quer Cadastrar Outro Carro  S/N ");
        fflush(stdin);
        scanf("%c",&sair);
    }while(toupper(sair)=='S');
    printf("\n");
}
int consulta(struct FastCar op_Dois[100]){
    int x,flag=0;
    char nova_P[6];
    printf("-------------------------------------------\n");
    printf("-----voce Selecionou Consultar Automovel---\n");
    printf("-------------------------------------------\n");
    fflush(stdin);
    printf("Digite a placa do carro: ");
    gets(nova_P);
    for(x=0; x<cont; x++){
        if(strcmp(op_Dois[x].placa, nova_P)==0){
            puts(op_Dois[x].descricao);
            puts(op_Dois[x].fabricante);
            puts(op_Dois[x].cor);
            printf("%d\n",op_Dois[x].ano_F);
            printf("%.2f",op_Dois[x].preco);
            flag=1;
        }
    }
    if(flag==0){
        printf("Essa Placa nao existe ou foi digitada incorreta");
    }
    printf("\n");
    return 0;
}
void relatorio(struct FastCar op_Tres[100]){
    int x;
    printf("-------------------------------------------\n");
    printf("-----voce Selecionou Gerar Relatorio---\n");
    printf("-------------------------------------------\n");
    printf("Todos Os Carros");
    for(x=0; x<cont; x++){
        puts(op_Tres[x].placa);
        puts(op_Tres[x].descricao);
        puts(op_Tres[x].fabricante);
        puts(op_Tres[x].cor);
        printf("%d\n",op_Tres[x].ano_F);
        printf("%f",op_Tres[x].preco);
    }
    printf("\n");
}
int main(){
    struct FastCar Carros[100];
    int escolha;
    do{
        printf("1. Cadastrar automovel\n");
        printf("2. Consultar automovel\n");
        printf("3. Gerar Relatorio\n");
        printf("4. Sair do Programa\n");
        scanf("%d",&escolha);
        if(escolha == 1){
            cadastro(Carros);
        }
        else
            if(escolha == 2){
                consulta(Carros);
            }
            else
                if(escolha == 3){
                    relatorio(Carros);
                }
                else
                    if(escolha == 4){
                        break;
                    }
    }while(escolha!= 4);
    return 0;
}

 

Editado por devair1010
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×