Ir ao conteúdo
  • Cadastre-se

C Erro no fina do programa


Maxavam

Posts recomendados




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

 

Link para o comentário
Compartilhar em outros sites

@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?

Link para o comentário
Compartilhar em outros sites

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