Ir ao conteúdo

Posts recomendados

Postado

Olá, estou tentando realizar a seguinte tarefa: Listar propietarios das placas dos carros que iniciam em A e finalizam em 0,2,7. Entretanto não esta funcionando, a variavel responsavel pela impressao apenas o ultimo valor lido.

//leitura da vairavel que eu queria colocar em fgets mas a mesma não funcioana
scanf("%s",&reg[i].placa);
.
.
.
.

CAD listaB(CAD reg[], int nreg){
        int j;
		for(j=0;j<nreg; j++){
                if(reg[j].placa[0]== 'a'){
                       		if(reg[j].placa[5]==0 || reg[j].placa[5]=='2' || reg[j].placa[5]=='7'){
                            printf(">>%s PLACA %s\n",reg[j].nome,reg[j].placa);
                        }
                }
        }
}

 

  • Amei 1
Postado

@yDuba    no struct precisa colocar o tamanho da variável placa ,  e na hora de comparar verificar se for A maiúsculo ou minúsculo ,  assim :

struct carro{
    char placa[30];
    char nome[ 30];
];
struct carro reg[10];
  
if(toupper(reg[j].placa[0]=='A'){

 

Postado
10 minutos atrás, devair1010 disse:

@yDuba    no struct precisa colocar o tamanho da variável placa ,  e na hora de comparar verificar se for A maiúsculo ou minúsculo ,  assim :


struct carro{
    char placa[30];
    char nome[ 30];
];
struct carro reg[10];
  
if(toupper(reg[j].placa[0]=='A'){

 

Mas nao é para verificar se é maiusculo, e sim se a letra A inicia na primeira posição da placa, e 2 ou 0 ou7 fincaliza o final de uma placa, se sim imprimir o propietario desta placa.

  • Obrigado 1
Postado

@yDuba   sim , mas como está a variável placa lá no struct ?    e  o toupper vai verificar se a primeira letra da variável é a letra 'a' e se for  'a'   ou  'A'   também será aceita , independente  se foi digitado maiúscula ou minúscula .

Postado

@devair1010 Só que assim, independente dela ser maiuscula ou minuscula, essa sintaxe esta dando errado ;-;

typedef struct{
        char nome[200];
        int chassi;
        int modelo;
        char marca[30];
        char cor[20];
        int combustivel;
        int ano;
        char placa[3];
}CAD;

 

  • Amei 1
Postado

@devair1010 mas em que isto implica? pois tipo, o tamanho da minha placa serve apenas para dizer a quantidade de numeros que quero guardar nela, logo se estou fazendo placa de 'carros', devo usar um tamanho menor. Ou não?

adicionado 2 minutos depois

@devair1010 deixarei o enunciado aqui :listar todas as placas e os proprietários dos veículos que comecem com a letra 'A' e terminem com '0', '2' ou '7'. DICA: faça com que a placa seja um vetor de caracteres!

  • Obrigado 1
Postado

@yDuba       sim , você pode usar o tamanho que quiser , mas precisa ser no mínimo o tamanho que comporte o total de caracteres , e que no caso são 6 caracteres uma letra e cinco dígitos , pois você está comparando o caractere na posição 5 , então esse sexto caractere está na posição 5 e na declaração você colocou que essa variável tem três posições  ,  assim quando você verifica a posição 5 pode ser um caractere que não foi digitado ,  e testei esse código aqui , e está funcionando bem  :

#include <stdio.h>
typedef struct{
        char nome[200];
        int chassi;
        int modelo;
        char marca[30];
        char cor[20];
        int combustivel;
        int ano;
        char placa[6];
}CAD;

CAD listaB(CAD reg[], int nreg){
    int j;
    for(j=0;j<nreg; j++){
        if(reg[j].placa[0]== 'a'){/* o zero precisa das aspas simples */
            if(reg[j].placa[5]=='0' || reg[j].placa[5]=='2' || reg[j].placa[5]=='7'){
                printf(">>%s PLACA %s\n",reg[j].nome,reg[j].placa);
            }
        }
    }
}
int main(){
    int j,i=0;
    CAD reg[10];
    strcpy(reg[i].nome,"kiko");
    scanf("%s",&reg[i].placa);

    listaB(reg,5);

    return 0;
}

 

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!