Ola, estou montando este programa para um trabalho da faculdade porem esta dando erro na hora de reconhecer quando insiro através da letra N que não quero mais continuar a inserir dados, mesmo colocando no do while(opcao!=N). Se alguém puder ajuda, obrigada.
/*Crie uma matriz 50X3 de valores reais para armazenar as
notas dos alunos de uma turma de Algoritmos e
Programação. Cada linha representa um aluno e cada
coluna os seguintes valores: nota do módulo 1, nota do
módulo 2 e nota da avaliação institucional.
• Permita ao usuário entrar com os dados de no máximo 50 alunos,
portanto ao cadastrar as notas pergunte se deseja receber as
notas de um novo aluno (S-Sim ou N-Não).
• Encontre o aluno com maior nota do primeiro módulo.
• Calcule a média final dos alunos, considerando:
Média =0,4*Mod1+0,5*Mod2+0,1Av.
• Para cada aluno mostre se ele foi aprovado ou se fará substitutiva,
considerando o valor 5,0 para aprovação.*/
#include<stdio.h>
#define n 5
int main()
{
int i, j, aluno=0;
float matriz[n][3], M1, M2, AI, maior=0, media[n];
char opcao;
for(i=1;i<=n;i++)
{
do
{
printf("\nAluno %i", i);
do
{
printf("\nNota Modulo 1:\n");
scanf("%f", &M1);
if(maior<M1)
{
maior=M1;
aluno=i;
}
if(M1<0 || M1>10)
{
printf ("\n Apenas notas entre 0 e 10. Digite novamente.\n");
}
}while(M1<0 || M1>10);
do
{
printf("\nNota Modulo 2:");
scanf("%f", &M2);
if(M2<0 || M2>10)
{
printf ("\nApenas notas entre 0 e 10. Digite novamente.\n");
}
}while(M2<0 || M2>10);
do
{
printf("\nNota da avaliacao institucional:\n");
scanf("%f",&AI);
if(AI<0 || AI>1)
{
printf ("\nApenas notas entre 0 e 1. Digite novamente.");
}
}while(AI<0 || AI>1);
printf("\nDesejar inserir notas de um novo aluno? Digite S para sim, e N para não.\n");
scanf(" %c", &opcao);
if(opcao!='S' && opcao!='N')
{
printf("\nLetra invalida. Digite apenas S ou N.\n");
}
}while(opcao == 'S');
media=((0,4*M1)+(0,5*M2)+(0,1*AI));
}
printf("\nAs medias dos alunos foram:\n");
for(i=1;i<=n;i++)
{
if(media>=5)
{
printf("\nMedia aluno %i: %.2f.\tSituacao: aprovado.\n", i, media);
}
else if (media<5)
{
printf("\nMedia aluno %i: %.2f.\tSituacao: reprovado.\n", i, media);
}
}
printf("\nA maior nota do primeiro modulo foi do aluno %i.", aluno);
return 0;
}
Utilizamos cookies e tecnologias semelhantes de acordo com a nossa Política de Privacidade, e ao continuar navegando, você concorda com estas condições.
Pergunta
Nadia123
Ola, estou montando este programa para um trabalho da faculdade porem esta dando erro na hora de reconhecer quando insiro através da letra N que não quero mais continuar a inserir dados, mesmo colocando no do while(opcao!=N). Se alguém puder ajuda, obrigada.
/*Crie uma matriz 50X3 de valores reais para armazenar as
notas dos alunos de uma turma de Algoritmos e
Programação. Cada linha representa um aluno e cada
coluna os seguintes valores: nota do módulo 1, nota do
módulo 2 e nota da avaliação institucional.
• Permita ao usuário entrar com os dados de no máximo 50 alunos,
portanto ao cadastrar as notas pergunte se deseja receber as
notas de um novo aluno (S-Sim ou N-Não).
• Encontre o aluno com maior nota do primeiro módulo.
• Calcule a média final dos alunos, considerando:
Média =0,4*Mod1+0,5*Mod2+0,1Av.
• Para cada aluno mostre se ele foi aprovado ou se fará substitutiva,
considerando o valor 5,0 para aprovação.*/
#include<stdio.h>
#define n 5
int main()
{
int i, j, aluno=0;
float matriz[n][3], M1, M2, AI, maior=0, media[n];
char opcao;
for(i=1;i<=n;i++)
{
do
{
printf("\nAluno %i", i);
do
{
printf("\nNota Modulo 1:\n");
scanf("%f", &M1);
if(maior<M1)
{
maior=M1;
aluno=i;
}
if(M1<0 || M1>10)
{
printf ("\n Apenas notas entre 0 e 10. Digite novamente.\n");
}
}while(M1<0 || M1>10);
do
{
printf("\nNota Modulo 2:");
scanf("%f", &M2);
if(M2<0 || M2>10)
{
printf ("\nApenas notas entre 0 e 10. Digite novamente.\n");
}
}while(M2<0 || M2>10);
do
{
printf("\nNota da avaliacao institucional:\n");
scanf("%f",&AI);
if(AI<0 || AI>1)
{
printf ("\nApenas notas entre 0 e 1. Digite novamente.");
}
}while(AI<0 || AI>1);
printf("\nDesejar inserir notas de um novo aluno? Digite S para sim, e N para não.\n");
scanf(" %c", &opcao);
if(opcao!='S' && opcao!='N')
{
printf("\nLetra invalida. Digite apenas S ou N.\n");
}
}while(opcao == 'S');
media=((0,4*M1)+(0,5*M2)+(0,1*AI));
}
printf("\nAs medias dos alunos foram:\n");
for(i=1;i<=n;i++)
{
if(media>=5)
{
printf("\nMedia aluno %i: %.2f.\tSituacao: aprovado.\n", i, media);
}
else if (media<5)
{
printf("\nMedia aluno %i: %.2f.\tSituacao: reprovado.\n", i, media);
}
}
printf("\nA maior nota do primeiro modulo foi do aluno %i.", aluno);
return 0;
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.