Rubemlrm Posted March 25, 2012 at 08:50 PM Report #445623 Posted March 25, 2012 at 08:50 PM Boas noites. Então é o seguinte , na faculdade comecei a semana passada a dar C e como tal decidi fazer uns exercícios extra-escola para aprender C.E um dos exercícios que encontrei dizia que consoante o montante de uma compra um determinado montante iria ser aplicado um desconto.E decidi utilizar o Switch para me fazer as validações de código de forma a reduzir o código.Mas sem sucesso :/ Aparece um erro a dizer " error: case label does not reduce to an integer constant " e não consigo perceber o que tenho que fazer para ficar a dar. fica aqui o código do que fiz: #include <stdio.h> float main(){ int montante; float total_liquido; float desconto; printf("Introduza o montante da compra"); scanf("%d", &montante); while ( montante >= 0){ switch(montante){ case montante < 500: printf("O valors total das compras é %d",montante); break; case montante >= 500 && montante <1250: total_liquido = montante * 0,04; printf("O total da compra é %d", total_liquido); break; case montante >= 1250 && montante < 2000: break; default: break; } } printf("O total das compras vai ser %f" , total_liquido); }
Guest Posted March 25, 2012 at 08:52 PM Report #445624 Posted March 25, 2012 at 08:52 PM não podes usar assim um switch. teria que ser assim switch(variavel) case 1 : tal; break; case 2 : tal ; break; case 3: tal; break; default : ex. #include<stdio.h> int main(void) { int a = 5; switch(a){ case 1 : printf("a é 1\n"); break; case 2 : printf("a é 2\n"); break; case 3 : printf("a é 3\n"); break; default : printf("é capaz de ser 5 \n"); break; } }
Rubemlrm Posted March 25, 2012 at 09:00 PM Author Report #445627 Posted March 25, 2012 at 09:00 PM hmm eu tb estava a achar estranho :/ .Mas tinha a ideia que tinha visto uma coisa do género a uns tempos.
Guest Posted March 25, 2012 at 09:04 PM Report #445628 Posted March 25, 2012 at 09:04 PM No teu caso é mesmo if's
pmg Posted March 25, 2012 at 09:09 PM Report #445631 Posted March 25, 2012 at 09:09 PM Deves estar a confundir com "if encadeados" if (cond1) statement1; else if (cond2) statement2; else if (cond3) statement3; /* ... */ else statementN; What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
pmg Posted March 25, 2012 at 09:12 PM Report #445633 Posted March 25, 2012 at 09:12 PM fica aqui o código do que fiz: #include <stdio.h> float main(){ Aiiiiiaiiiiiiiiiiiii!! Nao! A funcao main devolve um int. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Rubemlrm Posted March 25, 2012 at 09:13 PM Author Report #445634 Posted March 25, 2012 at 09:13 PM Deves estar a confundir com "if encadeados" if (cond1) statement1; else if (cond2) statement2; else if (cond3) statement3; /* ... */ else statementN; eu lembrei-me disso como primeira instancia.Mas depois comecei a pensar "bem na aula fizemos uma coisa parecida e o prof disse para usarmos o Switch que é bom para isto".Mas devo ter percebido mal .My fault :/ Mas obrigado pela ajuda =) ASsim para a próxima já não cometo este erro. @pmg tchi nem reparei 😄 Um gajo vem de perl que é tudo mais prático e depois comete erros destes .
pedrotuga Posted March 25, 2012 at 09:41 PM Report #445640 Posted March 25, 2012 at 09:41 PM eu lembrei-me disso como primeira instancia.Mas depois comecei a pensar "bem na aula fizemos uma coisa parecida e o prof disse para usarmos o Switch que é bom para isto".Mas devo ter percebido mal .My fault :/ Mas obrigado pela ajuda =) ASsim para a próxima já não cometo este erro. @pmg tchi nem reparei 😄 Um gajo vem de perl que é tudo mais prático e depois comete erros destes . Curioso, quando andava a estudar, na minha primeira cadeira de programação, que era em C++, a professora disse para não usarmos o switch. Mas eu nunca cheguei a ouvir a explicação. Esse tipo de conselho "não uses isto, usa antes aquilo que é melhor" por norma é baseado em ignorância.
Rubemlrm Posted March 25, 2012 at 09:49 PM Author Report #445644 Posted March 25, 2012 at 09:49 PM Curioso, quando andava a estudar, na minha primeira cadeira de programação, que era em C++, a professora disse para não usarmos o switch. Mas eu nunca cheguei a ouvir a explicação. Esse tipo de conselho "não uses isto, usa antes aquilo que é melhor" por norma é baseado em ignorância. Posso ter percebido mal o que se disse na aula , mas acho que não =). Mas no entanto ainda bem que tirei a dúvida que assim no futuro evito cometer este tipo de erros.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now