Eu estava tentando resolver o seguinte exercício.
Escreva um programa que leia 3 notas de um aluno e a média das notas dos exercícios realizados por ele. Calcular a média de aproveitamento, usando a fórmula: MA = (N1 + N2*2 + N3*3 + ME)/7. A partir da média, informar o conceito de acordo com a tabela:
maior ou igual a 9A
maior ou igual a 7.5 e menor que 9 B
maior ou igual a 6 e menor que 7.5 C
maior ou igual a 4 e menor que 6 D
menor que 4 E
Fiz o código todo certo e bem organizado com comentários, mas na hora da execução, na primeira leitura do valor de uma variável float o programa simplesmente para e não procede.
Deixarei alguns prints com o problema e os códigos que usei. Não é um erro na compilação, o código está ok, como podem ver mas sim na execução no momento da primeira leitura.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(){
setlocale(LC_ALL, "portuguese");
// variáveis aqui
float n1, n2, n3, resultado, ME;
//início do códgio, obtendo valores das variáveis necessárias
printf("Digite a primeira nota do aluno: \n");
scanf("%f", n1);
setbuf(stdin, NULL);
printf("Digite a segunda nota do aluno: \n");
scanf("%f", n2);
setbuf(stdin, NULL);
printf("Digite a terceira nota do aluno: \n");
scanf("%f", n3);
setbuf(stdin, NULL);
printf("Digite a nota da média dos exercícios realizados pelo aluno: \n");
scanf("%f", ME);
setbuf(stdin, NULL);
// processo de resultado
resultado = (n1+n2*2+n3*3+ME)/7;
// Condicionais para saber a nota de acordo com a Tabela dada
//maior ou igual a 9 A
//maior ou igual a 7.5 e menor que 9 B
//maior ou igual a 6 e menor que 7.5 C
//maior ou igual a 4 e menor que 6 D
//menor que 4 E
if(resultado<4){
printf("O aluno tirou nota: E \n\n");
}else if((resultado >= 4) and (resultado<6)){
printf("O aluno tirou nota: D \n\n");
}else if((resultado >= 6) and (resultado <7.5)){
printf("O aluno tirou nota: C \n\n");
}else if((resultado >= 7.5) and (resultado<9)){
printf("O aluno tirou nota: B \n\n");
}else if(resultado >= 9){
printf("O aluno tirou nota: A \n\n");
}
// demonstração de todas as notas adquiridas pelo aluno para realizar o cálculo final
printf(" De acordo com as seguintes notas! \n\n");
printf("Primeiro bimestre %f com peso 1 \n", n1);
printf("Segundo bimestre %f com peso 2 \n", n2);
printf("Terceiro bimestre %f com peso 3 \n", n3);
printf("Nota adquirida pela média de exercícios %f com peso 1 \n", ME);
system("pause");
return 0;
}
adicionado 26 minutos depois
Consegui solucionar. Percebi que na hora da compitalção eu não coloquei o & nas variáveis que estavam no scanf.