Ir ao conteúdo

Posts recomendados

Postado



#include <stdio.h>

#include <string.h>

struct pizza
{
char sabor[10]; char tam; float dist;
};

float custo_pizza(struct pizza * p);

main()
{
int i, n;
float custo_t = 0.0; struct pizza vet[100];
printf("Entre com o numero de pizzas: "); scanf("%d", &n);
for (i = 0; i < n; i++)
{
printf("Entre com o sabor da pizza %d: ", i+1); scanf("%s", vet[i].sabor);
fflush(stdin);
printf("Entre com o tamanho da pizza %d (M/G): ", i+1); scanf("%c", &vet[i].tam);
printf("Entre com a distancia para entrega da pizza %d: ", i+1);
scanf("%f", &vet[i].dist); custo_t += custo_pizza(&vet[i]);
}
printf("\nO custo total %c de R$%.2f\n\n", 130,custo_t);
getch();

float custo_pizza(struct pizza * p)
{
float custo = 0.0;
if (!(strcmp(p -> sabor, "muzzarela"))) if (p -> tam == 'G')
custo += 8.50;
else
custo += 7.00;
else
if (p -> tam == 'G') custo += 11.00;
else
custo += 9.00;

if (p -> dist > 3.0) custo += 2.00;

return custo;


}

 

Está dando um erro no final do programa e não roda, algume poderia me ajudar por favor....

 

Postado

@Maxavam Seu programa não tem indentação, fica meio ruim pra ler.

Acredito que o problema é o fato de você não ter fechado a chave da main.

image.png.ed178706254a5a160d3e547ce0863700.png

Você também não incluiu a conio.h pra poder usar a getch(), e é melhor usar getchar() nessa ocasião...

while(getchar() != '\n');

Evita você ter que incluir 1 biblioteca pra usar 1 função que por sinal não é necessária :D

Indentando, fica bem melhor:

int main()
{
    int i;
    int n;
    float custo_t = 0.0f;
    struct pizza vet[100];
    
    printf("Entre com o numero de pizzas: ");
    scanf("%d%*c", &n);
    
    for (i = 0; i < n; i++)
    {
        printf("Entre com o sabor da pizza %d: ", i+1);
        scanf("%9s%*c", vet[i].sabor);
        printf("Entre com o tamanho da pizza %d (M/G): ", i+1);
        scanf("%c%*c", &vet[i].tam);
        printf("Entre com a distancia para entrega da pizza %d: ", i+1);
        scanf("%f%*c", &vet[i].dist);
        custo_t += custo_pizza(&vet[i]);
    }
    
    printf("\nO custo total %c de R$%.2f\n\n", 130, custo_t);
    while(getchar() != '\n');
    
    return 0;
}

E podemos notar alguns problemas:

  • Que sabores vocês têm no menu?
  • Aliás, onde está o menu?
  • A distância é em que unidade? Metros, km, milhas?

Se o usuário inserir um número de pizzas maior que 100, você terá um problema.

Use alocação dinâmica, vai que ele quer umas 1000 pizzas sei lá :D

A função custo_pizza só avalia se a pizza é de muçarela?

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!