Jump to content
Fórum Script Brasil
  • 0

Mais uma dúvida cruel


TkD

Question

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...

#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.

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

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 by Prog_Junior
Link to comment
Share on other sites

  • 0

Prog_Junior

Dae cara, tem me ajudado muito e agradeço por isso. :D

Bom, 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 by TkD
Link to comment
Share on other sites

  • 0

Opa, fico agradecido pelo reconhecimento isso é gratificante.. Pois bem vamos por partes:

1)Procure colocar um comando por linha, para evitar algum tipo de problema

Evite 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 assim

2.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 dizer

se é 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...rs

5) 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, podendo

pegar lixo da memória.

Edited by Prog_Junior
Link to comment
Share on other sites

  • 0

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...