Ir ao conteúdo
  • Cadastre-se

Porque o meu programa não é executado?


Cassia Reis

Posts recomendados

Então, eu criei um programa no dev c++, mas ele não é executado, não sei porquê. Eu tenho vários outros programas no mesmo compilador, mas o programa é só com este. Não adianta renomear, criar um novo arquivo, ctrl c ctrl v, nada, que sempre que tento, chega aquela mensagem: O arquivo apresentou um problema e precisa ser fechado. Informe este problema à microsoft.

o programa é esse:

#include <cstdlib>

#include <iostream>

using namespace std;

struct mercadoria{

char nome[30];

float precoc, precov;

float lucropercent, lucro;

};

void lerdados(mercadoria v[]){

int i, x;

for (x=0; x<i; x++){

cout<<"\nome:'";

cin>>v[x].nome;

cout<<"\npreço de compra:";

cin>>v[x].precoc;

cout<<"\npreço de venda:";

cin>>v[x].precov;

}

}

float calclucro(mercadoria v[]){

int i, x;

for (x=0; x<i; x++){

v[x].lucro=v[x].precov-v[x].precoc;

v[x].lucropercent=(v[x].lucro*100)/v[x].precoc;

cout<<"\nLucro:"<<v[x].lucro;

cout<<"\nLucro Percentual:"<<v[x].lucropercent;

}

}

void calcmaior(mercadoria v[]){

int i, x;

char n1[30];

float maior=0;

for (x=0; x<i; x++){

if (v[x].lucropercent>maior){

maior=v[x].lucropercent;

strcpy(n1, v[x].nome);

}

}

cout<<"A mercadoria que oferece maior lucro percentual é"<<n1;

}

int main(){

int i, x;

float m;

mercadoria merc;

cout<<"\nDigite a quantidade de mercadorias";

cin>>i;

lerdados(merc);

calclucro(merc);

calcmaior(merc);

getchar();

return 0;

}

Link para o comentário
Compartilhar em outros sites

Cassia Reis: você está conhecendo o seu primeiro bug. A sintaxe do programa está correta, portanto ele compila. Mas alguma coisa está errada (como tentar acessar um endereço errado da memória). Se for possível, depura o seu programa (use o gdb) e ele mostra onde está o erro. Ou então uma análise mais detalhada do seu código deve ajudar..

Qualquer dúvida pergunte..

EDIT:

Acho que já percebi os erros no código. Você não inicializou as variáveis i nas funções lerdados(), calclucro(), e calcmaior(), ou seja, i contém "lixo" e você está comparando x < i (e não há como calcular se, por exemplo, 3 < -18781648187). Verifica isso aí...

Link para o comentário
Compartilhar em outros sites

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!