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