Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

andrei garcia

[Resolvido] programa c para corrigir um prova

Recommended Posts

AE GALERA, PRECISO DE UMA AJUDINHA AE ABAIXO VAI O EXERCICIO:

 

7. Escrever um programa que leia um vetor G de 5 elementos do tipo caractere que representa o gabarito de uma prova; a seguir, para cada um dos 4 alunos da turma, leia o vetor de respostas ® do aluno. Mostrar o número de acertos de cada aluno, seu grau e uma mensagem de "Aprovado" caso a quantidade de acertos seja maior ou igual a 3 (grau seis), ou "Reprovado" em caso contrário.

 

AKI TA O CODIGO Q TO FAZENDO , MAIS NAO TA RODANDO DIREITO

 

//programa para correçao de prova
#include <stdio.h>
#include<conio.h> //biblioteca para uso do getch//
#include<string.h>
#include <math.h>
#include <ctype.h>
#define n 10

main()
{
     int i,ac;
     char vetorr[n],vetorg[n];
     float media ;

     for(i=0;i<10;i++){
                  	printf("\nentre com a letra do gabarito referentea questao:%d\n",i+1);
                  	scanf("%c",&vetorg[i]);

                  	}
     for(i=0;i<n;i++){
                  	printf("gabarito da questao : %d letra: %c\n",i+=1,vetorg[i]);

                  	}


     for(i=1;i<=n;i++){
                  	printf("entre com a letra referente a questao:%d do primeiro aluno\n",i);
                  	scanf("%c",&vetorr[i]);}

                       if(vetorr[i]==vetorg[i]){
                       ac+=1;
                       media=ac/10;
                    	if(media>=0.5)
                         printf("o aluno acertou :%d questoes e teve grau:%1.2f foi aprovado\n",ac,media);
                         if(media<0.5)
                         printf("o aluno acertou :%d questoes e teve grau:%1.2f foi reprovado\n",ac,media);
                         }


     for(i=1;i<=n;i++){
                  	printf("entre com a letra referente a questao:%d do segundo aluno\n",i);
                  	scanf("%c",&vetorr[i]);
                  	}
                       if(vetorr[i]==vetorg[i]){
                       ac+=1;
                       media=ac/10;
                    	if(media>=0.5)
                         printf("o aluno acertou :%d questoes e teve grau:%1.2f foi aprovado\n",ac,media);
                         if(media<0.5)
                         printf("o aluno acertou :%d questoes e teve grau:%1.2f foi reprovado\n",ac,media);
                         }



     for(i=1;i<=n;i++){
                  	printf("entre com a letra referente a questao:%d do terçeiro aluno\n",i);
                  	scanf("%c",&vetorr[i]);
                  	}
                     if(vetorr[i]==vetorg[i]){
                       ac+=1;
                       media=ac/10;
                    	if(media>=0.5)
                         printf("o aluno acertou :%d questoes e teve grau:%1.2f foi aprovado\n",ac,media);
                         if(media<0.5)
                         printf("o aluno acertou :%d questoes e teve grau:%1.2f foi reprovado\n",ac,media);
                         }


	getch();
	}

ALGUEM PODE ME AJUDAR???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Qual a sua dúvida com relação à C? Quais os erros que seu programa apresenta? Qual resultado que está aparecendo errado?

 

Eu, pelo o menos, não tenho tempo para ler um programa assim, do nada, sem nenhuma informação a respeito do problema. Pelo o menos seja mais descritivo onde você não está conseguindo para que possamos ajudá-lo.

 

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui vai, resolvi o problema, eu acho, de uma forma diferente da sua.

#include <stdio.h>
#include <conio.h>

//Codigo Programa.c

//Array Do Gabarito
char Respostas[10] = {  'A', 'C', 'D', 'C', 'B', 'A', 'D', 'F', 'A', 'B','/0'};
//Lista Arrays Dos Alunos , as notas serão modificadas de acordo com a mudança dessas letras.
char aRespostas[10] = {  'D', 'F', 'D', 'D','A', 'B', 'C','F', 'D', 'B', '/0'};
char bRespostas[10] = {  'E', 'A', 'F', 'C','A', 'A', 'A','F', 'A', 'D', '/0'};
char cRespostas[10] = {  'F', 'C', 'D', 'A','C', 'C', 'D','F', 'A', 'C', '/0'};
char dRespostas[10] = {  'A', 'C', 'D', 'C', 'B', 'A', 'D', 'F', 'A', 'B','/0'};
int Alunos[5] = { 0, 0, 0, 0, 0};

//Variaveis Globais
int opcao = 0;
int aResult = 0;
int i = 0;

void checar()
{
   //Checar Respostas e total de aprovados
   for(i = 1; i < 10; i++)
   {
       if(aRespostas[i] == Respostas[i])
       {
           Alunos[1]++;
       }

       if(bRespostas[i] == Respostas[i])
       {
           Alunos[2]++;
       }

       if(cRespostas[i] == Respostas[i])
       {
           Alunos[3]++;
       }

       if(dRespostas[i] == Respostas[i])
       {
           Alunos[4]++;
       }
   }

   for(i = 1; i < 5; i++)
   {
       if(Alunos[i] >= 6)
       {
           aResult++;
       }
   }

}

void lista()
{
   //Listar alunos
   for(i = 1; i < 5; i++)
   {
       printf("Aluno %d: Acertos..:%d\t", i, Alunos[i]);
       if( Alunos[i] >= 6)
       {
           printf("Situacao..:Aprovado!\n");
       }
       else
       {
           printf("Situacao..:Reprovado!\n");
       }
   }

   printf("O Total De Aprovado Foi..:%d\n", aResult);
   printf("O Total De Reprovado Foi..:%d", 4 - aResult);

   getch();
}

void aluno()
{
   //Listar aluno unico
   int aluno;

   printf("Digite o numero de um aluno de 1 ~ 4 / 0 - Sair..:");

   scanf("%d", &aluno);

   if(aluno >0 && aluno <= 4)
   {

       printf("A nota do aluno %d foi..:%d\n",aluno, Alunos[aluno]);
       if( Alunos[aluno] >= 6)
       {
           printf("Situacao..:Aprovado!");
       }
       else
       {
           printf("Situacao..:Reprovado!");
       }

       getch();
   }
}

int main()
{
//Main Principal
checar();

while(1)
{

system("cls");

printf("Ver Lista de aluno - 1\n");
printf("Aluno - 2\n");
printf("Sair - 3\n");
printf("Digite Uma Opcao..:");

scanf("%d", &opcao);

if(opcao == 1)
{
   lista();
}
else if(opcao == 2)
{
   aluno();
}
else if(opcao == 3)
{
   printf("Ate Mais!");
   getch();
   break;
}

}


   return 0;
}

nos proximos posts lembre-se do uso da tag code, e descreva melhor seus problemas, se não nunca terá um solução que traga proveito.

 

 

Atenciosamente Marquinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu sebastiao, nao posso usar seu codigo pois nao aprendei ainda uns negocio q você usou, vou aprender agora no proximo mes :/

foi mal do jeito q postei sei la, a peimeira vez q estou aki.

 

volltando ao assunto, resolvi quase tudo, so a formula q usei q ta dando erro agora, ela nao ta acumulando eu acho e dai nao ta fazendo direitinho na hora de aparecer o grau do aluno e se foi reprovado ou aprovado.

 

alguem pode dar uma olhada e ve se acha o erro??

 

#include <stdio.h>
#include<conio.h> //biblioteca para uso do getch//
#include<string.h>
#include <math.h>
#include <ctype.h>
#define n 10

main()
{
int i,ac=0;
char vetorr[n],vetorg[n];
float media ;

for(i=0;i<n;i++){
printf("\nentre com a letra do gabarito referentea questao:%d\n",i+1);
fflush(stdin);
scanf("%c",&vetorg[i]);

}
for(i=0;i<n;i++){
printf("gabarito da questao : %d letra: %c\n",i+1,vetorg[i]);
fflush(stdin);
}


for(i=1;i<=n;i++){
printf("entre com a letra referente a questao:%d do primeiro aluno\n",i);
fflush(stdin);
scanf("%c",&vetorr[i]);}

if(vetorr[i]==vetorg[i]){
ac+=1;
media=ac/10;
 if(media>=0.5)

  printf("o aluno acertou :%d questoes e teve grau:%1.2f foi aprovado\n",ac,media);
   if(media<0.5)
   printf("o aluno acertou :%d questoes e teve grau:%1.2f foi reprovado\n",ac,media);
}



for(i=1;i<=n;i++){
printf("entre com a letra referente a questao:%d do segundo aluno\n",i);
fflush(stdin);
scanf("%c",&vetorr[i]);
}
if(vetorr[i]==vetorg[i]){
ac+=1;
media=ac/10;
if(media>=0.5)
printf("o aluno acertou :%d questoes e teve grau:%1.2f foi aprovado\n",ac,media);
if(media<0.5)
printf("o aluno acertou :%d questoes e teve grau:%1.2f foi reprovado\n",ac,media);
}



for(i=1;i<=n;i++){
printf("entre com a letra referente a questao:%d do terçeiro aluno\n",i);
fflush(stdin);
scanf("%c",&vetorr[i]);
}
if(vetorr[i]==vetorg[i]){
ac+=1;
media=ac/10;
if(media>=0.5)
printf("o aluno acertou :%d questoes e teve grau:%1.2f foi aprovado\n",ac,media);
if(media<0.5)
printf("o aluno acertou :%d questoes e teve grau:%1.2f foi reprovado\n",ac,media);
}


getch();
}

abraçoss, até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você ta se perdendo muito na questão, o exercicio pede coisas simples.

primeiro, vamos para a logica, teremos um array(vetor) de 5 elementos, aonde os 5 elementos serão as respostas oficiais do Gabarito principal.

depois você vai ter mais 4 arrays para as respostas dos alunos. agora verificamos as pontuações com um laço, simplesmente começo 0 final tanto de respostas no gabarito, no meio do laço você vai verificar as posições lá e as posições dos 4 gabaritos dos alunos. agora final é só você imprimir os resultados. o seu código ta ficando muito pesado para o que é pedido. não se preocupe, código limpo é código funcional e organizado, aonde você não precise de usar tantos comandos e funções para poder realizar uma simples tarefa. refaça o código, porém antes faça um esboço de sua idéia num papel, depois você verá que o exercicio não é um bixo de 7 cabeças e o que se pede ali é molesa. você tem o conhecimento, porém é por isso que a primeira materia estudada é Logica e Algoritimo.(Pelo menos foi comigo)

 

 

Atenciosamente Marquinho

 

valeu sebastiao, nao posso usar seu codigo pois nao aprendei ainda uns negocio q você usou, vou aprender agora no proximo mes :/

foi mal do jeito q postei sei la, a peimeira vez q estou aki.

 

volltando ao assunto, resolvi quase tudo, so a formula q usei q ta dando erro agora, ela nao ta acumulando eu acho e dai nao ta fazendo direitinho na hora de aparecer o grau do aluno e se foi reprovado ou aprovado.

 

alguem pode dar uma olhada e ve se acha o erro??

 

 

#include <stdio.h>

#include<conio.h> //biblioteca para uso do getch//

#include<string.h>

#include <math.h>

#include <ctype.h>

#define n 10

 

main()

{

int i,ac=0;

char vetorr[n],vetorg[n];

float media ;

 

for(i=0;i<n;i++){

printf("\nentre com a letra do gabarito referentea questao:%d\n",i+1);

fflush(stdin);

scanf("%c",&vetorg);

 

}

for(i=0;i<n;i++){

printf("gabarito da questao : %d letra: %c\n",i+1,vetorg);

fflush(stdin);

}

 

 

for(i=1;i<=n;i++){

printf("entre com a letra referente a questao:%d do primeiro aluno\n",i);

fflush(stdin);

scanf("%c",&vetorr);}

 

if(vetorr==vetorg){

ac+=1;

media=ac/10;

if(media>=0.5)

 

printf("o aluno acertou :%d questoes e teve grau:%1.2f foi aprovado\n",ac,media);

if(media<0.5)

printf("o aluno acertou :%d questoes e teve grau:%1.2f foi reprovado\n",ac,media);

}

 

 

 

for(i=1;i<=n;i++){

printf("entre com a letra referente a questao:%d do segundo aluno\n",i);

fflush(stdin);

scanf("%c",&vetorr);

}

if(vetorr==vetorg){

ac+=1;

media=ac/10;

if(media>=0.5)

printf("o aluno acertou :%d questoes e teve grau:%1.2f foi aprovado\n",ac,media);

if(media<0.5)

printf("o aluno acertou :%d questoes e teve grau:%1.2f foi reprovado\n",ac,media);

}

 

 

 

for(i=1;i<=n;i++){

printf("entre com a letra referente a questao:%d do terçeiro aluno\n",i);

fflush(stdin);

scanf("%c",&vetorr);

}

if(vetorr==vetorg){

ac+=1;

media=ac/10;

if(media>=0.5)

printf("o aluno acertou :%d questoes e teve grau:%1.2f foi aprovado\n",ac,media);

if(media<0.5)

printf("o aluno acertou :%d questoes e teve grau:%1.2f foi reprovado\n",ac,media);

}

 

 

getch();

}

 

 

abraçoss, até mais.

 

troque o flot por int, as notas não precisam ser pontos flutuantes, faça só por inteiro mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw ae sebastiao, fiz rodar aki, era so a formataçao da formula q estava errado.

 

ficou assim

 

#include <stdio.h>
#include<conio.h> //biblioteca para uso do getch//

#define n 5

main()
{
int i,ac1=0,ac2=0,ac3=0;
char vetorr[n],vetorg[n];
float media1,media2,media3;

for(i=0;i<n;i++){
printf("entre com a letra do gabarito referentea questao:%d\n",i+1);
fflush(stdin);
scanf("%c",&vetorg[i]);

}
for(i=0;i<n;i++){
printf("gabarito da questao : %d letra: %c\n",i+1,vetorg[i]);
fflush(stdin);
}

printf("\n \n");
printf("#####################>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<#############\n");
printf("#####################>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<#############\n");
printf("#####################>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<#############\n");
printf("\n \n");
for(i=0;i<n;i++){
printf("entre com a letra referente a questao:%d do primeiro aluno\n",i+1);
fflush(stdin);
scanf("%c",&vetorr[i]);

if(vetorr[i]==vetorg[i]){
ac1=ac1+1;}



}

media1=(ac1/5.0)*10.0;
if(ac1>=3)

  printf("o aluno acertou :%d questoes e teve grau:%2.2f foi aprovado\n",ac1,media1);

   if(ac1<3)

   printf("o aluno acertou :%d questoes e teve grau:%2.2f foi reprovado\n",ac1,media1);





printf("\n \n");
printf("#####################>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<#############\n");
printf("#####################>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<#############\n");
printf("#####################>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<#############\n");   
printf("\n \n");

for(i=0;i<n;i++){
printf("entre com a letra referente a questao:%d do segundo aluno\n",i+1);
fflush(stdin);
scanf("%c",&vetorr[i]);

if(vetorr[i]==vetorg[i]){
ac2=ac2+1;}

media2=ac2/5.0*(10.0);

}



if(ac2>=3)

  printf("o aluno acertou :%d questoes e teve grau:%2.2f foi aprovado\n",ac2,media2);

   if(ac2<3){

   printf("o aluno acertou :%d questoes e teve grau:%2.2f foi reprovado\n",ac2,media2);}

printf("#####################>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<#############\n");
printf("#####################>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<#############\n");
printf("#####################>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<#############\n");    

printf("\n \n");   
for(i=0;i<n;i++){
printf("entre com a letra referente a questao:%d do terçeiro aluno\n",i+1);
fflush(stdin);
scanf("%c",&vetorr[i]);

if(vetorr[i]==vetorg[i]){
ac3=ac3+1;}

media3=ac3/5.0*(10.0);

}



if(ac3>=3){

  printf("o aluno acertou :%d questoes e teve grau:%2.2f foi aprovado\n",ac3,media3);}

   if(ac3<3){

   printf("o aluno acertou :%d questoes e teve grau:%2.2f foi reprovado\n",ac3,media3);}


printf("\n \n");
printf("aperte entrer para sair\n");
printf("ate mais\n");

getch();
}

 

claro como o sebastiao falou,ta meiu confuso, pelo menos funcionou hehehe, vou ir treinando mais pra melhorar, até a proxima.

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tinha dado uma interpretada no seu código porém não tinha tido tempo para responder, o problema realmente é Indentação e Organização.. dê uma melhorada nisso, procure usar espaçamento e váriaveis com nomes claros e com abreviações isso irá ajudar ao seu professor e a qualquer outra pessoa entender seus códigos. no final de contas o problema erá só organização ^^.

 

 

Atenciosamente Marquinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.