TkD Posted January 9, 2012 Report Share Posted January 9, 2012 Dae galera venho mais uma vez pedir a ajuda de vocês se possivel :DAssim, eu estou montando este script mais está dando erro na parte inf e else (eu axo), se alguém poder me ajudar...#include <stdio.h> #include <conio.h> #include <conio.c> #define limite 10 int main() { int n1,n2,soma; //Entrada printf("Digite as duas notas:"); scanf("%d %d" ,&n1,&n2); clrscr (); soma = n1+n2/2; //Saida if (soma <limite) { printf("Voce esta:"); textcolor(BLUE); if (soma >=7) printf("APROVADO"); textcolor(YELLOW); else (soma <=6) printf("Em Recuperação"); textcolor(YELLOW); else (soma <=3) printf("REPROVADO"); } else (soma >limite) { printf("Erro"); } getch (); }já tentei varias modificações e não encontrei nenhuma conclusão ainda.Me falaram que a forma do else e if estava errada, mais como é então ?Erros no Dev-C++:- In function `int main()': - expected primary-expression before "else" - expected `;' before "else" - expected primary-expression before "else" - expected `;' before "else" - expected `;' before '{' token Se alguém poder ajudar... Grato.Att. Quote Link to comment Share on other sites More sharing options...
0 Binder Posted January 9, 2012 Report Share Posted January 9, 2012 (edited) Opa, tem alguns erros no seu código:1) Não sei se existe em C a biblioteca que você declarou:#include <conio.c> 2) Para limpar os dados após da tela, como você deseja, utiliza o seguinte comando da bilioteca <stdlib.h>: system("CLS"); 3) Está gerando erro no comando "textcolor(cor)", não saberia te dizer a solução mais viável para isso. 4) As variaveis devem ser declaradas como float, pois a nota pode ser "quebrada": Exemplo: 5.5, 7.9... float n1=0,n2=0,soma=0; 5) Não vejo sentido na variavel que você declarou como limite=10, vai ter um problema nisso ai. Quer ver? Se as duas notas que o usuário digitou forem n1=10, n2=10, daria 10 +10 = 20 / 2 = 10, sendo que o aluno iria ficar "aprovado", mas caiu no else mais externo e vai aparecer: printf("erro"); Não sei se é obrigatório você colocar isso, mas pense na minha idéia, ve se realmente vale a pena fazer isso. 6) Eu faria da seguinte maneira: #include <stdio.h> #include <conio.h> #include <stdlib.h> #define limite 10 int main() { float n1=0,n2=0,soma=0; //Entrada printf("Digite a primeira nota:"); scanf("%f",&n1); printf("Digite a segunda nota:"); scanf("%f",&n2); system("CLS"); soma = (n1+n2)/2; //Saida if (soma < limite) { printf("Voce esta:"); //textcolor(15); if (soma >=7.0){ printf("APROVADO");} //textcolor(YELLOW); else if(soma >=3.0 && soma<=6.9){ printf("Em Recuperacao");} //textcolor(YELLOW); else if(soma <=3.0){ printf("REPROVADO");} } else{ printf("Erro");} getch (); } Edited January 9, 2012 by Prog_Junior Quote Link to comment Share on other sites More sharing options...
0 TkD Posted January 9, 2012 Author Report Share Posted January 9, 2012 (edited) Prog_JuniorDae cara, tem me ajudado muito e agradeço por isso. :DBom, a biblioteca conio.c eu baixei, edai o comando clrscr(); eu posso usar normal.O textcolor eu mudei de posição e funcionou perfeitamente, pena que eu não sei porque, se alguém poder explicar...Mas eu tenho ainda umas dúvidas com este script. E também está ocorrendo um erro.Script:#include <stdio.h> #include <conio.h> #include <conio.c> #define limite 10 int main() { int n1=0,n2=0,soma=0; //Entrada printf("Digite a primeira nota:"); scanf("%d" ,&n1); printf("Digite a segunda nota:"); scanf("%d" ,&n2); clrscr (); soma = n1+n2/2; //Saida if (soma <limite) { printf("Voce esta:"); if (soma >=7.0){ textcolor(BLUE); printf("APROVADO");} else if (soma <=6.0){ textcolor(YELLOW); printf("Em Recuperacao");} else if (soma <=3.0){ textcolor(RED); printf("REPROVADO");} } else { printf("Erro"); } getch (); }Me parece que a conta esta dando errado, pois eu coloco 2 (Primeira nota) 2 (Segunda nota). E o resultado que teria que ser 2+2/2 = 2 ( REPROVADO ) mais no programa ele está em Recuperação, porque está acontecendo isso?E outra dúvida. Toda vez que eu usar o else 2x que é no caso deste script, eu terei que usar else if? Pois antes eu estava usando apenas else.No caso do #include limite 10 eu poderia então trocar por 11 não? Edit: Meu deus, coloquei 11 e fiz a conta que você mencionou 10,10 e o aluno fico em recuperação UEHAUEHUA, tem algo muito errado ai.E a ultima dúvida hehe, porque nas variáveis você colocou 'variavel=0' ?.Obrigado.Att. Edited January 9, 2012 by TkD Quote Link to comment Share on other sites More sharing options...
0 Binder Posted January 9, 2012 Report Share Posted January 9, 2012 (edited) Opa, fico agradecido pelo reconhecimento isso é gratificante.. Pois bem vamos por partes:1)Procure colocar um comando por linha, para evitar algum tipo de problemaEvite fazer isso:textcolor(BLUE); printf("APROVADO");}2) Suas contas devem estar gerando erro, pois como você declarou os numeros como float, o correto seria digitar assim2.0 , 2.4 ... Do jeito que você fez está digitando um inteiro (n1=2,n=2) e está lendo como float.3) Refente ao else if, como tinha mais de uma condição (aprovado,recuperacao,reprovado) utilizei else-if. Não saberei te dizerse é a forma mais correta nesse caso.Eu sei que funcionou.4) Referente ao limite=10, não vejo sentido algum você colocar,como está fazendo uma simples verificação de média, o que importa é realmente se o aluno ficar em algumas das 3 condições citadas anteriormente(aprovado,reprovado,recuperação), não tem o porque de fazer um "else", dizendo erro na tela..Pois na maioria das avaliações as notas vão de 0(zero) até 10(dez), não teria como o aluno tirar 11.Ao menos que combine com o professor para mudar a nota...rs5) E por ultimo referente ao inicializar as váriaveis com zero, é para garantir que não ocorra algum tipo de erro, na hora de utilizar as mesmas, podendopegar lixo da memória. Edited January 9, 2012 by Prog_Junior Quote Link to comment Share on other sites More sharing options...
0 TkD Posted January 9, 2012 Author Report Share Posted January 9, 2012 Segui suas dicas, e muito Obrigado.Dei uma melhorada no script, e agora está tudo legal :D.Script Abaixo:#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <conio.c> int main() { float n1=0,n2=0,soma=0; //Entrada printf("Digite a primeira nota:"); scanf("%f" ,&n1); printf("Digite a segunda nota:"); scanf("%f" ,&n2); system("CLS"); //ULA soma = n1+n2/2; //Saida if (soma) { printf("Voce esta:"); if (soma >=7.0){ textcolor(BLUE); printf("APROVADO");} else if (soma >=3.1 && soma<=6.9){ textcolor(YELLOW); printf("Em Recuperacao");} else if (soma <=3.0){ textcolor(RED); printf("REPROVADO");} } getch (); }Valeu por tudo Prog_Junior.Att. Quote Link to comment Share on other sites More sharing options...
Question
TkD
Dae galera venho mais uma vez pedir a ajuda de vocês se possivel :D
Assim, eu estou montando este script mais está dando erro na parte inf e else (eu axo), se alguém poder me ajudar...
já tentei varias modificações e não encontrei nenhuma conclusão ainda.
Me falaram que a forma do else e if estava errada, mais como é então ?
Erros no Dev-C++:
- In function `int main()':
- expected primary-expression before "else"
- expected `;' before "else"
- expected primary-expression before "else"
- expected `;' before "else"
- expected `;' before '{' token
Se alguém poder ajudar... Grato.
Att.
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.