Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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;
}

 

  • Curtir 2
  • Obrigado 1
Postado
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
Postado

@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;
}

 

  • Curtir 1
Postado
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

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...