Jump to content
paulopoxoreo1234@gmail.com

Dúvida sobre questão de um programa em linguagem C

Recommended Posts

Sabe-se que numa matriz A com 10 linhas e 3 colunas está armazenado o gabarito de um concurso, onde na primeira coluna fica armazenado a nota da prova objetiva, na segunda coluna fica armazenado a nota da prova subjetiva e na terceira coluna está armazenado a nota mínima a ser alcançada na prova objetiva para que seja corrigida a prova subjetiva. A partir disso, desenvolva um programa em C que lido as informações do gabarito para a matriz A diga: Qual a porcentagem de participantes que não tiveram a prova subjetiva corrigida? Qual a média final dos participantes que tiveram a prova subjetiva corrigida? Considerando que a média final é dada pela seguinte fórmula:, onde Mp é a média do participante que teve a prova subjetiva corrigida, PO é a nota da prova objetiva, PS é a nota da prova subjetiva, MF é a média final dos participantes que tiveram a prova subjetiva corrigida  e n a quantidade de participantes que tiveram a prova subjetiva corrigida.

ABAIXO ESTÁ O CÓDIGO PARA COMPILAÇÃO. GOSTARIA DE VER SE VOCÊS APONTAM A SOLUÇÃO DO ERRO.

 

#include<stdio.h>
#include<conio.h>
#define MATRIZ 3

 float matriz[MATRIZ][3],aprovados,reprovados,MF;
 int p,q,r;

 int main(){
     for(q=1;q<=MATRIZ;q++){
         for(p=1;p<=3;p++){      //validação matriz A;
             switch (p){
                 case 1:
                          printf("\n\ncandidato (%d)\n",q);
                          printf("PO   -> ");break;
                 case 2: printf("PS  -> ");break;
                 case 3: printf("nota minima na objetiva  -> ");break;
             }
            scanf("%f",&matriz[q][p]);
            }
         if(matriz[q][1]>=matriz[q][3]){
                MF=MF+(matriz[q][1]+matriz[q][2])/2;
                r++;//alunos que foram aprovados para a segunda etapa;
            }
         printf("MP -> %.2f",(matriz[q][1]+matriz[q][2])/2);
         printf("\n");
     }
     MF=MF/r;
     if(r!=MATRIZ)
         aprovados=r*(100/MATRIZ);
    else
        aprovados=100;
     reprovados=100-aprovados;

     printf("\n\nprovas subjetiva corrigidas : %d",r);
     printf("\nporcentagem de aprovados : %.2f %",aprovados);
     printf("\nporcentagem de reprovados : %.2f %",reprovados);
     printf("\nmedia dos aprovados : %.2f",MF);
 }
 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By dayvidham
      Olá, atualmente faço parte de uma comunidade brasileira que está imersa em um projeto DeFi de um Token que roda na rede BSC.
      Temos um Token chamado SkyRocketSR criado a 31 dias e ja somos mais de 5000 pessoas interessadas no seu sucesso.
      Estamos em busca de programadores, designers e todos que poderem somar à comunidade de alguma forma.
      Alguém gostaria de saber mais do projeto e quem sabe compor a equipe da linha de frente já que somos uma comunidade?
      Obrigado e contamos com você.

      https://skyrocketsr.com/en/

      Aqui há mais sobre nós!
    • By dayvidham
      Olá, atualmente faço parte de uma comunidade brasileira que está imersa em um projeto DeFi de um Token que roda na rede BSC.
      Temos um Token chamado SkyRocketSR criado a 31 dias e ja somos mais de 5000 pessoas interessadas no seu sucesso.
      Estamos em busca de programadores, designers e todos que poderem somar à comunidade de alguma forma.
      Alguém gostaria de saber mais do projeto e quem sabe compor a equipe da linha de frente já que somos uma comunidade?
      Obrigado e contamos com você.

      https://skyrocketsr.com/en/

      Aqui há mais sobre nós!
    • By luigiferrari
      Gostaria de fazer um programa onde o usuário digitaria o tamanho de conjuntos e quantas linhas possui os conjuntos, exemplo:

      Seguindo, o programa perguntaria qual conjunto o usuário quer adicionar o valor, e então o valor seria adicionado nas linhas, e qnd cheio, seria o FIFO.
      Mas minhas principais duvidas seriam:
      1- Como eu crio um vetor dentro de outro (não necessariamente precisa ser um vetor, aceito sugestões de como fazer isso)
      2- Caso eu faça com o vetor, teria que gerar x vetores, por exemplo, caso o usuário colocasse em "qts conjuntos: 5" teria que criar 5 conjuntos(vetores) diferentes. Como faço isso?!
      Lembrando aceito qualquer sugestão, estou fazendo em C# mas tbm entendo de Python e PHP caso tenha alguma ideia.
    • By paulopoxoreo1234@gmail.com
      Fiz  a multiplicação da 2 matrizes mas não consigo fazer a transposta dela. Peço ajuda para solucionar este problema.
      #include <stdio.h> #include <stdlib.h> #define T_BUFFER 512 int main(void) { int *numeros, q_linhas = 0, q_colunas = 0, linhas, colunas; char buffer[T_BUFFER]; /* Pega a quantidade de linhas da matriz */ do { printf("Digite a quantidade de linhas da matriz\n"); if (fgets(buffer, T_BUFFER, stdin) != NULL) { if (buffer[0] != '\n') { if (sscanf(buffer, "%i", &q_linhas) != 1) { printf("Digite um numero\n"); } } else { printf("Digite uma entrada valida!\n"); } } } while (q_linhas <= 0); /* Pega a quantidade de colunas da matriz */ do { printf("Digite a quantidade de colunas da matriz\n"); if (fgets(buffer, T_BUFFER, stdin) != NULL) { if (buffer[0] != '\n') { if (sscanf(buffer, "%i", &q_colunas) != 1) { printf("Digite um numero\n"); } } else { printf("Digite uma entrada valida!\n"); } } } while (q_colunas <= 0); /* Reserva memoria para a matriz */ numeros = malloc(sizeof(*numeros)*q_linhas*q_colunas); if (numeros == NULL) { perror("Erro ao reservar memoria!"); exit(EXIT_FAILURE); } /* Lê a matriz do úsuario */ for (linhas = 0; linhas < q_linhas; linhas++) { for (colunas = 0; colunas < q_colunas; colunas++) { int pega_novamente = 1; /* Pega um numero */ do { printf("[%i][%i]\n", linhas, colunas); if (fgets(buffer, T_BUFFER, stdin) != NULL) { if (buffer[0] != '\n') { if (sscanf(buffer, "%i", &numeros[(linhas*q_colunas)+colunas]) == 1) { pega_novamente = 0; /* Sai do "do {} while()" */ } } else { printf("Digite uma entrada valida!\n"); } } } while (pega_novamente); } } /* Mostra a matriz */ printf("Matriz digitada\n"); for (linhas = 0; linhas < q_linhas; linhas++) { for (colunas = 0; colunas < q_colunas; colunas++) { printf("%i,", numeros[(linhas*q_colunas)+colunas]); } putchar('\n'); } getchar(); /* Espera o enter */ /* Libera a memoria */ free(numeros); return(0); }  
    • By dudepaiva
      Boa tarde!
      Estou buscando os dados em uma planilha e adicionando em uma lista. Antes de adicionar em uma lista, utilizo o GROUPBY para agrupar a informação desejada, até aqui tudo bem, porém quando tento lançar essa informação num COMBOBOX, ocorre erro de parametro.
      A primeira linha em negrito, é onde busco e agrupo as informações. A segunda é onde ocorre o erro.
       
      Segue código:
       
      Quero trazer os dois campos abaixo.
       
      public class ProdutoDTO
          {
              private string codigo;
              private string nomeTributario;
              private string linhaReduzida;
              private string linha;
              private string marcaReduzida;
              private string marca;
              private string gramatura;
              public ProdutoDTO()
              {
              }
              public ProdutoDTO(string codigo, string nomeTributario, string linhaReduzida, string linha, string marcaReduzida, string marca, string gramatura)
              {
                  this.Codigo = codigo;
                  this.nomeTributario = nomeTributario;
                  this.linhaReduzida = linhaReduzida;
                  this.linha = linha;
                  this.marcaReduzida = marcaReduzida;
                  this.marca = marca;
                  this.gramatura = gramatura;
              }
              public string Codigo { get => codigo; set => codigo = value; }
              public string NomeTributario { get => nomeTributario; set => nomeTributario = value; }
              public string LinhaReduzida { get => linhaReduzida; set => linhaReduzida = value; }
              public string Linha { get => linha; set => linha = value; }
              public string MarcaReduzida { get => marcaReduzida; set => marcaReduzida = value; }
              public string Marca { get => marca; set => marca = value; }
              public string Gramatura { get => gramatura; set => gramatura = value; }
          }
       
      A primeira linha em negrito, é onde busco e agrupo as informações. A segunda é onde ocorre o erro.
       
      private void AbrirArquivoExcel()
              {
                  //Configura OpenFileDialog.
                  OpenFileDialog openFD = new OpenFileDialog();
                  openFD.Title = "Localizar arquivo";
                  openFD.InitialDirectory = @"C:\Documentos\Planilhas";
                  openFD.Filter = "Arquivo Excel (*.xlsx) | *.xlsx";
                  openFD.CheckFileExists = true;
                  openFD.CheckPathExists = true;
                  openFD.ShowReadOnly = true;
                  openFD.RestoreDirectory = true;
                  openFD.ReadOnlyChecked = true;
                  if (openFD.ShowDialog() == DialogResult.OK)
                  {
                      try
                      {
                          txtOpenFD.Text = openFD.FileName;
                          var produtos = produtoBLL.Buscar(openFD.FileName, "Dados").GroupBy(x => x.Linha).ToList();
                          cbLinha.DataSource = produtos;
                          cbLinha.ValueMember = "Codigo";
                          cbLinha.DisplayMember = "Linha";
                          cbLinha.SelectedIndex = -1;
                          cbLinha.Text = "Selecione";
                          //CarregarComboBox(cbLinha, produtos, "Linha", "LinhaReduzida");
                      }
                      catch (Exception)
                      {
                          throw;
                      }
                  }
              }
       
      Desde já agradeço a ajuda! Já quebrei a cabeça!

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.