LucasJPA
(usa Debian)
Enviado em 19/07/2017 - 10:21h
Colegas escrevi um codigo em C que compila mas apresenta falha na segmentação na hora da execução. Eis o codigo:
//compra de animais
#include <stdio.h>
int main()
{
int tipo, qtd;
float precoU, total, comissao;
printf("\n\n\t\t======== Compra de animais ========");
printf("\n\n[1] Equinos\n[2] Bovinos\n[3] Ovinos\n\nEscolha: ");
scanf("%d", tipo);
switch(tipo)
{
case 1:
printf("\nPreco unitario do animal (R$): ");
scanf("%f", &precoU);
printf("\nQuantidade de animais: ");
scanf("%f", &qtd);
total = precoU * qtd;
comissao = total - 0.07;
printf("\n\nTotal a pagar: %.2f", total);
printf("\nComissao a se pagar: %.2f", comissao);
break;
case 2:
printf("\nPreco unitario do animal (R$): ");
scanf("%f", &precoU);
printf("\nQuantidade de animais: ");
scanf("%f", &qtd);
total = precoU * qtd;
comissao = total - 0.05;
printf("\n\nTotal a pagar: %.2f", total);
printf("\nComissao a se pagar: %.2f", comissao);
break;
case 3:
printf("\nPreco unitario do animal (R$): ");
scanf("%f", &precoU);
printf("\nQuantidade de animais: ");
scanf("%f", &qtd);
total = precoU * qtd;
comissao - total - 0.03;
printf("\n\nTotal a pagar: %.2f", total);
printf("\nComissao a se pagar: %.2f", comissao);
break;
}
return 0;
}
O mesmo acontece nestes outros dois codigos:
media esxolar com peso
#include <stdio.h>
int main()
{
float n1, n2, n3, n4, media;
printf("\n\n\tCalculo de media escolar");
printf("\nNota 1: ");
scanf("%f", n1);
printf("Nota 2: ");
scanf("%f", n2);
printf("Nota 3: ");
scanf("%f", n3);
printf("Nota 4: ");
scanf("%f", n4);
media = ((n1 + (n2 * 2) + (n3 * 3) + n4)/7);
if(media >= 9.0){
printf("\nMedia: %.2f\nConceito A", media);
}
if(media >= 7.5 && media < 9.0){
printf("\nMedia: %.2f\nConceito B", media);
}
if(media >= 6.0 && media < 7.5){
printf("\nMedia: %.2f\nConceito C", media);
}
if(media < 6.0){
printf("\nMedia: %.2f\nConceito D", media);
}
return 0;
}
//açougue 1: calculo de total, imposto, lucro
#include <stdio.h>
int main()
{
float peso, prkilo, total, imcs, lucroL;
printf("\n\n\t======== ACOUGUE 1 ========");
printf("\n\nPeso: ");
scanf("%f", &peso);
printf("\nPreco por kg: ");
scanf("%f", prkilo);
total = peso * prkilo;
imcs = total * 0.17;
lucroL = total - imcs;
printf("\nTotal a pagar: %.2f", total);
printf("\nIMCS (17%): %.2f", imcs);
printf("\nLucro liquido do acougue: %.2f", lucroL);
return 0;
}
//compra de animais
#include <stdio.h>
int main()
{
int tipo, qtd;
float precoU, total, comissao;
printf("\n\n\t\t======== Compra de animais ========");
printf("\n\n[1] Equinos\n[2] Bovinos\n[3] Ovinos\n\nEscolha: ");
scanf("%d", tipo);
switch(tipo)
{
case 1:
printf("\nPreco unitario do animal (R$): ");
scanf("%f", &precoU);
printf("\nQuantidade de animais: ");
scanf("%f", &qtd);
total = precoU * qtd;
comissao = total - 0.07;
printf("\n\nTotal a pagar: %.2f", total);
printf("\nComissao a se pagar: %.2f", comissao);
break;
case 2:
printf("\nPreco unitario do animal (R$): ");
scanf("%f", &precoU);
printf("\nQuantidade de animais: ");
scanf("%f", &qtd);
total = precoU * qtd;
comissao = total - 0.05;
printf("\n\nTotal a pagar: %.2f", total);
printf("\nComissao a se pagar: %.2f", comissao);
break;
case 3:
printf("\nPreco unitario do animal (R$): ");
scanf("%f", &precoU);
printf("\nQuantidade de animais: ");
scanf("%f", &qtd);
total = precoU * qtd;
comissao - total - 0.03;
printf("\n\nTotal a pagar: %.2f", total);
printf("\nComissao a se pagar: %.2f", comissao);
break;
}
return 0;
}
Queria entender por que isso acontece pois ao meu ver os codigos estão corretos.