Ir ao conteúdo

struct com função


Êxodo

Posts recomendados

Postado

Atividade que foi me passada.

Crie uma estrutura para descrever um carro de uma determinada revendedora, contendo os seguintes campos:

-marca: string de tamanho 15

-ano: inteiro

-cor: string de tamanho 10

-preço: real

a) Crie um struct com a definição da estrutura carro.

B) Criar uma função para cadastrar um carro

c) Exibir os dados do carro cadastrado no item b

Criei só que gostaria que alguém me ajudasse pra ver se meu raciocínio ta certo ou se teria alguma coisa que eu pudesse fazer para melhorar o código. Segue o código abaixo:

#include <stdio.h>

#include <stdlib.h>

struct carro{

char marca[15];

int ano;

char cor[10];

float preco;

};

void cadastro(struct carro *c){

printf ("digite a marca do carro\n");

scanf("%s",&c->marca);

printf ("digite o ano do carro\n");

scanf("%d",&c->ano);

printf ("digite a cor do carro\n");

scanf("%s",&c->cor);

printf("digite o preco do carro\n");

scanf("%f",&c->preco);

printf ("a marca do carro é: %s \n", c->marca);

printf ("o ano do carro é: %d\n", c->ano);

printf("a cor do carro é: %s\n", c->cor);

printf ("o preco do carro é: %f\n\n", c->preco);

}

int main()

{

struct carro marca;

cadastro (&marca);

printf("A marca do carro é: %s \n",marca.marca);

printf("o ano do carro é: %d \n",marca.ano);

printf("a cor do carro é: %s\n",marca.cor);

printf("o preco do carro é R$: %f\n",marca.preco);

system ("pause");

return 0;

}

Postado
Como eu poderia então ta fazendo para que não seja exibido os dados do mesmo carro 2 vezes, Felipe?

No programa tem duas sequências com 4 printfs cada. É só retirar uma dessas sequências, deletando ou comentando com /* */:


/*printf ("a marca do carro é: %s \n", c->marca);
printf ("o ano do carro é: %d\n", c->ano);
printf("a cor do carro é: %s\n", c->cor);
printf ("o preco do carro é: %f\n\n", c->preco);*/

Postado

Só pra dar uma dica . . . Um négocio muito legal . . . Em minha humilde opinião é o typedef . . . Com ele você não precisa colocar "struct carro" com ele fica apenas carro . . . Você tem o tipo carro . . . é só pra escrever menos e o código fica mas legível . . . pelo menos pra mim :mellow: EXEMPLO:

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

typedef struct carro
{
char marca[15];
int ano;
char cor[10];
float preco;
}CAR;

CAR* Monta_Carro(int ano, char marca[], char cor[], int preco){
CAR *carro = (CAR*) malloc(sizeof(CAR)) ;
carro->ano = ano;
strcpy (carro->marca, marca);
strcpy (carro->cor,cor);
carro->preco = preco;
return carro;
}

T++

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!