Ir para conteúdo
Fórum Script Brasil
  • 0

Mais uma dúvida cruel


TkD

Pergunta

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 para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 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 ();
}

Editado por Prog_Junior
Link para o comentário
Compartilhar em outros 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.

Editado por TkD
Link para o comentário
Compartilhar em outros 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.

Editado por Prog_Junior
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...