Enio Marconcini Postado Novembro 25, 2004 Denunciar Share Postado Novembro 25, 2004 Caraca porque eu não consigo compilar um cod simples no dev-c++ 5 como esse abaixo: #include <stdio.h> #include <conio.c> typedef struct calculadora { float valor1, valor2, total; char operacao; void menuprincipal() { clrscr(); printf("CALCULADORA\n\n"); printf("Digite o primeiro valor: "); scanf("%f", &valor1); printf("\n\nOperacao a sr realizada: "); scanf("%c", &operacao); printf("\n\nDigite o segundo valor: "); scanf("%f", &valor2); } void calcula() { if (operacao == "+") { total = valor1 + valor2; } if (operacao == "-") { total = valor1 - valor2; } if (operacao == "/") { total = valor1 / valor2; } if (operacao == "*") { total = valor1 * valor2; } } void mostraresultado() { printf("\n\nResultado: %f", total); } }; calculadora c; main() { c.menuprincipal(); c.calcula(); c.mostraresultado(); getch(); }Dá erro em operações.... e não aceita "void main" porque ???Existe algum outro compilador free melhor q esse ???Bye Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William Rodrigues Postado Novembro 25, 2004 Denunciar Share Postado Novembro 25, 2004 Brother...Não manjo nada em C cara, mas pelo pouco que sei de C++ esse seu código contém muitos erros.estou arrumando aqui, amanhã posto o resultado PS: estou reescrevendo o programa inteiro!Abraços,William Rodrigues Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 iSoron Postado Novembro 25, 2004 Denunciar Share Postado Novembro 25, 2004 Cara, me desculpe, mas suas criticas ao Dev-C++ não têm fundamentos.Como eu disse em outro Post, a IDE é o Dev-C++, mas o compilador é o GNU GCC C++, que, convenhamos, faz parte da maior comunidade de programadores do planeta. Se não fosse um dos melhores compiladores, não seria utilizado na comunidade *nix. Criticar o compilador deles é, no mínimo, ridículo. :lol:O seu arquivo fonte não foi compilado porque, como disse o Willian, possui erros. Quanto ao void main(), posso dizer que é errado por, pelo menos, três motivos:1. A ISO C++ Standard (ISO/IEC 14882:1998) explicita claramente que a função main deve, sob qualquer hipotese, retornar um valor do tipo int.2. As funções presentes no kernel dos sistemas operacionais assumem que, ao ser carregado, o aplicativo irá colocar um valor na pilha. Se esse valor não for colocado, a pilha ficará corrompida, o que poderá levar o sistema a travamentos.3. A declaração como void implicará no retorno de um valor aleatório correspondente ao valor que está na posição da memória onde o seu return deveria estar. Isso pode causar sérios problemas para alguém que queira depurar o seu programa e verificar se ele saiu normalmente, ou com erros.Ainda assim, no C é permitido o uso de void main().No C++, porém, essa prática é totalmente proibida.Até mais,iSoron. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William Rodrigues Postado Novembro 26, 2004 Denunciar Share Postado Novembro 26, 2004 Bom, como eu tinha falado no meu post anterior..."Não manjo nada em C"Então, tá aqui o código, fiz no Dev C++ 5.0! Segue o código do programa: #include <stdio.h> #include <stdlib.h> /* typedef struct calculadora { float valor1, valor2, total; char operacao; } c; */ float calcular(float valor1, char operacao, float valor2); void mostraresultado(float total); int main() { //clrscr(); printf("CALCULADORA\n\n"); printf("Digite o primeiro valor: "); float valor1; scanf("%f", &valor1); printf("\n\nOperacao a ser realizada: "); char operacao; scanf("%s", &operacao); printf("\n\nDigite o segundo valor: "); float valor2; scanf("%f", &valor2); float total; total = calcular(valor1, operacao, valor2); mostraresultado(total); } float calcular(float valor1, char operacao, float valor2) { float total; if (operacao == '+') { total = valor1 + valor2; } if (operacao == '-') { total = valor1 - valor2; } if (operacao == '/') { total = valor1 / valor2; } if (operacao == '*') { total = valor1 * valor2; } return (total); } void mostraresultado(float total) { printf("\n\nResultado: %f", total); system("PAUSE"); } Então, como não sei C então não trabalhei com o Struct*. Tentei, mas como não manjo nada, fiz de uma outra forma. Vê se o código te ajuda, tem algumas diferenças com relação ao seu código, dá uma estudada beleza Espero ter ajudado...PS: Só não consegui atribuir valores para as variáveis da Struct. Acho que é algo com gets, algo assim...Abraços,William Rodrigues Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodfraga Postado Novembro 26, 2004 Denunciar Share Postado Novembro 26, 2004 Struct se não me engano é válido em C++, apenas. Cara mandaram ver...HAUHAUHAUHAUHAUHAUHAUiSoron, humilha, mas não exculaxa. HAUHAUHAUHAUHAUHAUFoi mal pelo meio-flood galera, mas não resisti.Acrescentando:Pra te ajudar, cara, muda os vários ifs em calcular() para else if. Eles melhoram o desempenho, já que na função, a operação só pode ser um caracter. Você colocando vários ifs ele vai testar várias condições, mesmo que a primeira se encaixe corretamente. Com o else if, ele pula o resto se encontrar a alternativa correta. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William Rodrigues Postado Novembro 29, 2004 Denunciar Share Postado Novembro 29, 2004 Pra te ajudar, cara, muda os vários ifs em calcular() para else if. Eles melhoram o desempenho, já que na função, a operação só pode ser um caracter. Você colocando vários ifs ele vai testar várias condições, mesmo que a primeira se encaixe corretamente. Com o else if, ele pula o resto se encontrar a alternativa correta. Exatamente...Ou se preferir, use o Switch Abraços,William Rodrigues Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 == Douplus == Postado Novembro 30, 2004 Denunciar Share Postado Novembro 30, 2004 Struct se não me engano é válido em C++, apenas. Na verdade struct pode ser usado em C. Qualquer compilador C reconhece struct, mas usar struct em C++ é diferente de usar struct em C.Se não me engano, em C, na implementação de uma struct só pode conter declarações de variáveis. Já em C++, pode definir funções em uma struct Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 William Rodrigues Postado Novembro 30, 2004 Denunciar Share Postado Novembro 30, 2004 Bacana...Valeu pela explicação Abraços,William Rodrigues Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodfraga Postado Novembro 30, 2004 Denunciar Share Postado Novembro 30, 2004 Valeu caraRodrigo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Enio Marconcini
Caraca porque eu não consigo compilar um cod simples no dev-c++ 5 como esse abaixo:
Dá erro em operações.... e não aceita "void main" porque ???
Existe algum outro compilador free melhor q esse ???
Bye
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.