Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Season

Problema com execução da estrutura em C

Recommended Posts

Season    7

Olá, gostaria de pedir ajuda em uma situação pela qual estou passando, no caso eu fiz um executável em linguagem C, e embora não tenha erro na sintaxe dos comandos estou enfrentando a parada repentina do executável, estou no começo do aprendizado e por isso recorro a pessoas experientes no assunto. 

Aqui segue o código:

 

#include <stdio.h>
#include <locale.h>
main()
{
setlocale (LC_ALL, "Portuguese");
float n1,n2,n3,m;
printf("A nota da avaliação 1 é: \n");
scanf("%f", n1);
printf("A nota da avaliação 2 é: \n");
scanf("%f", n2);
printf("A nota da avaliação 3 é: \n");
scanf("%f", n3);

if (n1<n2 and n1<n3)
    n1=0;
if (n2<n1 and n2<n3)
    n2=0;
if (n3<n1 and n3<n2)
    n3=0;
if (n1=n2=n3)
    n1=0;
m=(n1+n2+n3)/2;    

printf("A média do aluno é: %f",m);
if (m>=7)
    printf("Aluno está aprovado!");
    else
        if(m<7)
            printf("Aluno está reprovado!");
}

 

Desde já, agradeço.

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
devair1010    441

@Season      são três erros,  o primeiro é o setlocale, se você quer que ele seja configurado como linguagem português então você precisa remover essa palavra " portuguese " do comando, então ficaria assim :

setlocale (LC_ALL, "");

o segundo erro é na hora de comparar no comando if, se você vai comparar se é igual então você precisa usar dois sinais de igual assim :

if (n1 == n2 && n2 == n3)

e o terceiro erro é que não pode dividir nenhum número por zero, e nem zero por nenhum número , e ali na hora que você vai pegar a média você tem n1=0 + n2 =0 + n3 =0 resultado zero dividido por dois, aí dá erro e fecha o programa .

veja como ficaria seu código com algumas modificações :.

#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main(){
    setlocale (LC_ALL, "");
    float n1,n2,n3,m;
    printf("A Nota da avaliação 1 é: \n");
    scanf("%f",& n1);
    printf("A Nota da avaliação 2 é: \n");
    scanf("%f",& n2);
    printf("A Nota da avaliação 3 é: \n");
    scanf("%f",& n3);
    m=(n1+n2+n3)/3;
    printf("\nA Média Do Aluno é: %.2f\n",m);
    if (m>=7)
        printf("Aluno Está Aprovado!\n\n");
    else
        if(m<7)
            printf("Aluno Está Reprovado!\n\n");
    getch();
    return 0;
}

 

Editado por devair1010
  • Curtir 2
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
MassakiMsk    149

tem um quarto erro que é na hora dos scanf a falta do & 

scanf("%f", & n1);

  • Curtir 2
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
devair1010    441

@MassakiMsk    opa é mesmo não notei esse erro, e também tem mais um que é o if (n1<n2 and n1<n3) que está usando a expressão and ao invéz de && então no caso ficaria assim  :

if (n1<n2 && n1<n3)

 

Editado por devair1010
  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Season    7
  • Autor do tópico
  • Em 8/23/2017 às 20:04, MassakiMsk disse:

    tem um quarto erro que é na hora dos scanf a falta do & 

    scanf("%f", & n1);

     

    Em 8/23/2017 às 20:09, devair1010 disse:

    @MassakiMsk    opa é mesmo não notei esse erro, e também tem mais um que é o if (n1<n2 and n1<n3) que está usando a expressão and ao invéz de && então no caso ficaria assim  :

    
    if (n1<n2 && n1<n3)

     

    Muito obrigado, pessoal, agora compreendo, mas ali na média, é aquilo mesmo, só que eu não achei forma melhor para fazer, então fiz media=(n1+n2+n3)/2. A minha ideia era a seguinte, eu tenho três avaliações, mas a média é feita por duas, no caso eu pego as duas maiores e descarto a menor, por isso coloco Variável=0, se menor que 7, para não afetar na fórmula da média, e se fossem todos iguais eu excluiria a primeira.

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    devair1010    441

    @Season    modifiquei seu código por que não havia entendido como ele funcionava, mas agora que você disse, deu para entender, então seu código ficaria assim :

    #include <stdio.h>
    #include <locale.h>
    main(){
        setlocale (LC_ALL, "");
        float n1,n2,n3,m;
        printf("A nota da avaliação 1 é: \n");
        scanf("%f", &n1);
        printf("A nota da avaliação 2 é: \n");
        scanf("%f",&n2);
        printf("A nota da avaliação 3 é: \n");
        scanf("%f",&n3);
        if (n1<n2 && n1<n3)
            n1=0;
        if (n2<n1 && n2<n3)
            n2=0;
        if (n3<n1 && n3<n2)
            n3=0;
        if (n1==n2 && n1==n3)
            n1=0;
        m=(n1+n2+n3)/2;
        printf("\nA média do aluno é: %.2f\n",m);
        if (m>=7)
            printf("Aluno está aprovado!\n\n");
        else
            if(m<7)
                printf("Aluno está reprovado!\n\n");
        getch();
        return 0;
    }

     

    Editado por devair1010
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Season    7
  • Autor do tópico
  • Em 26/08/2017 às 00:27, devair1010 disse:

    @Season    modifiquei seu código por que não hivia entendido como ele funcionaria, mas agora que você disse, deu para entender, seu código ficaria assim :

    
    #include <stdio.h>
    #include <locale.h>
    main(){
        setlocale (LC_ALL, "");
        float n1,n2,n3,m;
        printf("A nota da avaliação 1 é: \n");
        scanf("%f", &n1);
        printf("A nota da avaliação 2 é: \n");
        scanf("%f",&n2);
        printf("A nota da avaliação 3 é: \n");
        scanf("%f",&n3);
        if (n1<n2 && n1<n3)
            n1=0;
        if (n2<n1 && n2<n3)
            n2=0;
        if (n3<n1 && n3<n2)
            n3=0;
        if (n1==n2 && n1==n3)
            n1=0;
        m=(n1+n2+n3)/2;
        printf("\nA média do aluno é: %.2f\n",m);
        if (m>=7)
            printf("Aluno está aprovado!\n\n");
        else
            if(m<7)
                printf("Aluno está reprovado!\n\n");
        getch();
        return 0;
    }

     

    Senhor, muito obrigado, além de me ajudar ainda me mostrou como fazer o uso do && e ==, valeu mesmo.

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×