Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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;
}

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!