Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia estou tendo que fazer um calculador de media mas estou com dificuldades, o sistema de notas em que devo fazer é a seguinte: o aluno terá duas notas a A1 e a A2 em que cada uma vale 5(a media aceitável é 6) caso o aluno tirar menos de 6 ele deve fazer a AF e substituir a menor nota entre a A1 e A2. eu consegui fazer ate aqui:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
main()
{
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, media;
printf("Digite a nota da A2: ");
scanf("%f", &A2);
printf("Digite a nota da A1: ");
scanf("%f", &A1);
media=(A2+A1);
printf("A media e: %2f", media);
if (media >=6.0)
printf(" Aluno aprovado");
else
printf(" Aluno deve fazer a AF e subistituir a menor nota entre A1 e A2 ");
getch();
}
mas não sei como fazer para depois de informar se o aluno é aprovado terminar o programa ou se o aluno for reprovado dar a opção de informar a AF e subistituir a menor nota entre A1 e A2 e depois mostrar novamente se o aluno foi aprovado ou reprovado.
obs: gostaria de saber também como fazer para só aceitar de 0 a 5 não podendo inserir letras e nem números maiores ou negativos.
a questão para ajudar o compreendimento é a seguinte:
A primeira prova vale 5.0(um trabalho valendo 1.0 e a prova valendo 4.0)e depois teremos uma segunda prova valendo 5.0. se o aluno nao atingir a media 6.0 ele tera uma terceira chance, uma outra prova que valerá 5.0 e substituirá a menos das duas notas anteriores.>
Em 24/03/2017 at 16:25, Eziquiel disse:
Pelo que entendi você não pode usar a média, porém a soma das duas notas. Se calcular a média entre dois valores de 0 a 5, o resultado jamais será maior que 5.
Média = (A1 + A2)/2
Soma = (A1 + A2) - (este é o seu caso).
Agora vamos ao código.
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
printf("Digite a nota da A2: ");
scanf("%f", &A2);
printf("\nDigite a nota da A1: ");
scanf("%f", &A1);
soma=(A2+A1);
printf("\n\nSua nota final é: %2f", soma);
if (soma >= 6)
printf("\n\nAluno aprovado");
else
{
printf("\n\nAluno deve fazer a AF e subistituir a menor nota entre A1 e A2 ");
printf("\nDigite a nota de AF: ");
scanf("%f", &AF);
if (A1<A2)
A1 = AF;
else if (A2<=A1)
A2 = AF;
soma=(A2+A1);
printf("\n\nSua nova nota final é: %2f", soma);
if (soma >= 6)
printf("\nAluno aprovado");
else
printf("\nAluno reprovado");
}
getch();
return 0;
}
Então é isso que eu esta tentando fazer soque agora eu gostaria que só desse pra inserir números e só entre 0 a 5, por que A2 , A1 e AF valem de 0 a 5 cada uma. então no programa devera ter a possibilidade só de colocar números e de 0 a 5.Acho que isso vai fazer oque você quer.
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
do{
printf("Digite a nota da A2: ");
scanf("%f", &A2);
}while(A2>=0 && A2<=5)
do{
printf("\nDigite a nota da A1: ");
scanf("%f", &A1);
}while(A1>=0 && A1<=5)
soma=(A2+A1);
printf("\n\nSua nota final é: %2f", soma);
if (soma >= 6)
printf("\n\nAluno aprovado");
else
{
printf("\n\nAluno deve fazer a AF e subistituir a menor nota entre A1 e A2 ");
printf("\nDigite a nota de AF: ");
scanf("%f", &AF);
if (A1<A2)
A1 = AF;
else if (A2<=A1)
A2 = AF;
soma=(A2+A1);
printf("\n\nSua nova nota final é: %2f", soma);
if (soma >= 6)
printf("\nAluno aprovado");
else
printf("\nAluno reprovado");
}
getch();
return 0;
}>
10 minutos atrás, rodrigomarden disse:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
printf("Digite a nota da A2: ");
scanf("%f", &A2);
printf("\nDigite a nota da A1: ");
scanf("%f", &A1);
soma=(A2+A1);
printf("\n\nSua nota final é: %2f", soma);
if (soma >= 6)
printf("\n\nAluno aprovado");
else
{
printf("\n\nAluno deve fazer a AF e subistituir a menor nota entre A1 e A2 ");
printf("\nDigite a nota de AF: ");
scanf("%f", &AF);
if (A1<A2)
A1 = AF;
else if (A2<=A1)
A2 = AF;
soma=(A2+A1);
printf("\n\nSua nova nota final é: %2f", soma);
if (soma >= 6)
printf("\nAluno aprovado");
else
printf("\nAluno reprovado");
}
getch();
return 0;int main()
{
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
do{
printf("Digite a nota da A2: ");
scanf("%f", &A2);
}while(A2>=0 && A2<=5)
do{
printf("\nDigite a nota da A1: ");
scanf("%f", &A1);
while(A1>=0 && A1<=5)
soma=(A2+A1);
printf("\n\nSua nota final é: %2f", soma);
if (soma >= 6)
printf("\n\nAluno aprovado");
else
{
printf("\n\nAluno deve fazer a AF e subistituir a menor nota entre A1 e A2 ");
printf("\nDigite a nota de AF: ");
scanf("%f", &AF);
if (A1<A2)
A1 = AF;
else if (A2<=A1)
A2 = AF;
soma=(A2+A1);
printf("\n\nSua nova nota final é: %2f", soma);
if (soma >= 6)
printf("\nAluno aprovado");
else
printf("\nAluno reprovado");
}
getch();
return 0;
}
Acho que isso vai fazer oque você quer.
Pelo que eu entendi( eu entendo muito pouco comecei o curso agora) acho que é isso mesmo soque eu nao estou conseguindo rodar esta dando erro na hora de compilaSegue...
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
printf("Digite a nota da A2: ");
do {
continuar = false;
scanf("%f", &A2);
if (A2 < 0 or A2 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A2: ");
continuar = true;
}
} while (continuar);
printf("\nDigite a nota da A1: ");
do {
continuar = false;
scanf("%f", &A1);
if (A1 < 0 or A1 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A1: ");
continuar = true;
}
} while (continuar);
soma=(A2+A1);
printf("\n\nSua nota final é: %2f", soma);
if (soma >= 6)
printf("\n\nAluno aprovado");
else
{
printf("\n\nAluno deve fazer a AF e subistituir a menor nota entre A1 e A2 ");
printf("\nDigite a nota de AF: ");
do {
continuar = false;
scanf("%f", &AF);
if (AF < 0 or AF > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da AF: ");
continuar = true;
}
} while (continuar);
if (A1<A2)
A1 = AF;
else if (A2<=A1)
A2 = AF;
soma=(A2+A1);
printf("\n\nSua nova nota final é: %2f", soma);
if (soma >= 6)
printf("\nAluno aprovado");
else
printf("\nAluno reprovado");
}
getch();
return 0;
}>
9 minutos atrás, Eziquiel disse:
Segue...
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
printf("Digite a nota da A2: ");
do {
continuar = false;
scanf("%f", &A2);
if (A2 < 0 or A2 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A2: ");
continuar = true;
}
} while (continuar);
printf("\nDigite a nota da A1: ");
do {
continuar = false;
scanf("%f", &A1);
if (A1 < 0 or A1 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A1: ");
continuar = true;
}
} while (continuar);
soma=(A2+A1);
printf("\n\nSua nota final é: %2f", soma);
if (soma >= 6)
printf("\n\nAluno aprovado");
else
{
printf("\n\nAluno deve fazer a AF e subistituir a menor nota entre A1 e A2 ");
printf("\nDigite a nota de AF: ");
do {
continuar = false;
scanf("%f", &AF);
if (AF < 0 or AF > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da AF: ");
continuar = true;
}
} while (continuar);
if (A1<A2)
A1 = AF;
else if (A2<=A1)
A2 = AF;
soma=(A2+A1);
printf("\n\nSua nova nota final é: %2f", soma);
if (soma >= 6)
printf("\nAluno aprovado");
else
printf("\nAluno reprovado");
}
getch();
return 0;
}
esta dando erro no continuar, não esta dando pra compilar#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
boolean continuar;
printf("Digite a nota da A2: ");
do {
continuar = false;
scanf("%f", &A2);
if (A2 < 0 or A2 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A2: ");
continuar = true;
}
} while (continuar);
printf("\nDigite a nota da A1: ");
do {
continuar = false;
scanf("%f", &A1);
if (A1 < 0 or A1 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A1: ");
continuar = true;
}
} while (continuar);
soma=(A2+A1);
printf("\n\nSua nota final é: %2f", soma);
if (soma >= 6)
printf("\n\nAluno aprovado");
else
{
printf("\n\nAluno deve fazer a AF e subistituir a menor nota entre A1 e A2 ");
printf("\nDigite a nota de AF: ");
do {
continuar = false;
scanf("%f", &AF);
if (AF < 0 or AF > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da AF: ");
continuar = true;
}
} while (continuar);
if (A1<A2)
A1 = AF;
else if (A2<=A1)
A2 = AF;
soma=(A2+A1);
printf("\n\nSua nova nota final é: %2f", soma);
if (soma >= 6)
printf("\nAluno aprovado");
else
printf("\nAluno reprovado");
}
getch();
return 0;
}
Ele não declarou a variável continuar, tenta agora.Ah sim.... declare a variável "continuar" abaixo das suas variáveis.
Exemplo:
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
bool continuar;>
1 minuto atrás, rodrigomarden disse:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
boolean continuar;
printf("Digite a nota da A2: ");
do {
continuar = false;
scanf("%f", &A2);
if (A2 < 0 or A2 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A2: ");
continuar = true;
}
} while (continuar);
printf("\nDigite a nota da A1: ");
do {
continuar = false;
scanf("%f", &A1);
if (A1 < 0 or A1 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A1: ");
continuar = true;
}
} while (continuar);
soma=(A2+A1);
printf("\n\nSua nota final é: %2f", soma);
if (soma >= 6)
printf("\n\nAluno aprovado");
else
{
printf("\n\nAluno deve fazer a AF e subistituir a menor nota entre A1 e A2 ");
printf("\nDigite a nota de AF: ");
do {
continuar = false;
scanf("%f", &AF);
if (AF < 0 or AF > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da AF: ");
continuar = true;
}
} while (continuar);
if (A1<A2)
A1 = AF;
else if (A2<=A1)
A2 = AF;
soma=(A2+A1);
printf("\n\nSua nova nota final é: %2f", soma);
if (soma >= 6)
printf("\nAluno aprovado");
else
printf("\nAluno reprovado");
}
getch();
return 0;
}
Ele não declarou a variável continuar, tenta agora.
nao consegui ainda agora esta dando erro na linha boolean continuar;>
4 minutos atrás, Eziquiel disse:
Ah sim.... declare a variável "continuar" abaixo das suas variáveis.
Exemplo:
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
bool continuar;
Altere de boolean para bool.>
2 minutos atrás, rodrigomarden disse:
Altere de boolean para bool.
continua dando erro.
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
int x;
printf("Digite a nota da A2: ");
do {
x = 0;
scanf("%f", &A2);
if (A2 < 0 or A2 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A2: ");
x = 1;
}
} while (x == 1);
printf("\nDigite a nota da A1: ");
do {
x = 0;
scanf("%f", &A1);
if (A1 < 0 or A1 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A1: ");
x = 1;
}
} while (x == 1);
soma=(A2+A1);
printf("\n\nSua nota final é: %2f", soma);
if (soma >= 6)
printf("\n\nAluno aprovado");
else
{
printf("\n\nAluno deve fazer a AF e subistituir a menor nota entre A1 e A2 ");
printf("\nDigite a nota de AF: ");
do {
x = 0;
scanf("%f", &AF);
if (AF < 0 or AF > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da AF: ");
x = 1;
}
} while (x == 1);
if (A1<A2)
A1 = AF;
else if (A2<=A1)
A2 = AF;
soma=(A2+A1);
printf("\n\nSua nova nota final é: %2f", soma);
if (soma >= 6)
printf("\nAluno aprovado");
else
printf("\nAluno reprovado");
}
getch();
return 0;
}
Tenta agora.
Se continuar dando erro, informe o log do erro.>
2 minutos atrás, rodrigomarden disse:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
int x;
printf("Digite a nota da A2: ");
do {
x = 0;
scanf("%f", &A2);
if (A2 < 0 or A2 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A2: ");
x = 1;
}
} while (x == 1);
printf("\nDigite a nota da A1: ");
do {
x = 0;
scanf("%f", &A1);
if (A1 < 0 or A1 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A1: ");
x = 1;
}
} while (x == 1);
soma=(A2+A1);
printf("\n\nSua nota final é: %2f", soma);
if (soma >= 6)
printf("\n\nAluno aprovado");
else
{
printf("\n\nAluno deve fazer a AF e subistituir a menor nota entre A1 e A2 ");
printf("\nDigite a nota de AF: ");
do {
x = 0;
scanf("%f", &AF);
if (AF < 0 or AF > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da AF: ");
x = 1;
}
} while (x == 1);
if (A1<A2)
A1 = AF;
else if (A2<=A1)
A2 = AF;
soma=(A2+A1);
printf("\n\nSua nova nota final é: %2f", soma);
if (soma >= 6)
printf("\nAluno aprovado");
else
printf("\nAluno reprovado");
}
getch();
return 0;
}
Se continuar dando erro, informe o log do erro.
line:25 col:22 [Error] expected ')' before 'or'#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
int x;
printf("Digite a nota da A2: ");
do {
x = 0;
scanf("%f", &A2);
if (A2 < 0 || A2 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A2: ");
x = 1;
}
} while (x == 1);
printf("\nDigite a nota da A1: ");
do {
x = 0;
scanf("%f", &A1);
if (A1 < 0 || A1 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A1: ");
x = 1;
}
} while (x == 1);
soma=(A2+A1);
printf("\n\nSua nota final é: %2f", soma);
if (soma >= 6)
printf("\n\nAluno aprovado");
else
{
printf("\n\nAluno deve fazer a AF e subistituir a menor nota entre A1 e A2 ");
printf("\nDigite a nota de AF: ");
do {
x = 0;
scanf("%f", &AF);
if (AF < 0 || AF > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da AF: ");
x = 1;
}
} while (x == 1);
if (A1<A2)
A1 = AF;
else if (A2<=A1)
A2 = AF;
soma=(A2+A1);
printf("\n\nSua nova nota final é: %2f", soma);
if (soma >= 6)
printf("\nAluno aprovado");
else
printf("\nAluno reprovado");
}
getch();
return 0;
}>
12 minutos atrás, rodrigomarden disse:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
float A1, A2, AF, soma;
int x;
printf("Digite a nota da A2: ");
do {
x = 0;
scanf("%f", &A2);
if (A2 < 0 || A2 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A2: ");
x = 1;
}
} while (x == 1);
printf("\nDigite a nota da A1: ");
do {
x = 0;
scanf("%f", &A1);
if (A1 < 0 || A1 > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da A1: ");
x = 1;
}
} while (x == 1);
soma=(A2+A1);
printf("\n\nSua nota final é: %2f", soma);
if (soma >= 6)
printf("\n\nAluno aprovado");
else
{
printf("\n\nAluno deve fazer a AF e subistituir a menor nota entre A1 e A2 ");
printf("\nDigite a nota de AF: ");
do {
x = 0;
scanf("%f", &AF);
if (AF < 0 || AF > 5){
printf("\n A nota deve ser um valor de 0 à 5! Digite a nota da AF: ");
x = 1;
}
} while (x == 1);
if (A1<A2)
A1 = AF;
else if (A2<=A1)
A2 = AF;
soma=(A2+A1);
printf("\n\nSua nova nota final é: %2f", soma);
if (soma >= 6)
printf("\nAluno aprovado");
else
printf("\nAluno reprovado");
}
getch();
return 0;
}
deu certo obrigado. valeu pela paciência
Pelo que entendi você não pode usar a média, porém a soma das duas notas. Se calcular a média entre dois valores de 0 a 5, o resultado jamais será maior que 5.
Média = (A1 + A2)/2
Soma = (A1 + A2) - (este é o seu caso).
Agora vamos ao código.
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{