Falha na segmentação [RESOLVIDO]

1. Falha na segmentação [RESOLVIDO]

Lucas jose Pereia de Araujo
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.


  


2. Re: Falha na segmentação [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/07/2017 - 10:24h

Dica:

Tem como editar a postagem para ficar como

func () {
printf "";
}


?

Aperte o botão QUOTE e analise a minha postagem, que você aprenderá a deixar o código assim.


3. Re: Falha na segmentação [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 19/07/2017 - 15:58h

Não vi o código todo, mas existe um erro logo no início. Você disse
scanf("%d", tipo); 
quando deveria ter dito
scanf("%d", &tipo); 
. Isso é suficiente para causar um SIGSEGV.


4. Re: Falha na segmentação [RESOLVIDO]

Lucas jose Pereia de Araujo
LucasJPA

(usa Debian)

Enviado em 01/08/2017 - 11:07h

paulo1205 escreveu:

Não vi o código todo, mas existe um erro logo no início. Você disse
scanf("%d", tipo); 
quando deveria ter dito
scanf("%d", &tipo); 
. Isso é suficiente para causar um SIGSEGV.


Realmente foi isso paulo, obrigado pelo alerta e desculpem a demora






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts