Ir para conteúdo
Fórum Script Brasil

Maickon

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Posts postados por Maickon

  1. oi, sei quase nada em c mais dei umas mexidas no seu código, ver se melhorou.

    aki tah compilando numa boa...

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    int main()
    {
    
    char nome[20];
    float nota1[20],nota2[20],media[20];
    int matricula[20],i,maior_media=0,num_alunos=0,indice_maior=0,j=0,vet_decrescente[20];
    
    i=0;
    
    scanf("%s",&nome[i]);
    num_alunos++;
    
    while(strcmp(&nome[i],"FIM")!=0) /* le nomes, notas e matriculas enquanto nome for diferente de "FIM" */
    {
       scanf("%d",&matricula[i]);
       scanf("%f",&nota1[i]);
       scanf("%f",&nota2[i]);
    
       media[i]= (nota1[i]+nota2[i])/2;
    
       i++;
       
       scanf("%s",&nome[i]);
       num_alunos++;
    }
    
    for(i=0,j=0; i<(num_alunos-1); i++,j++) /* encontra a maior media das notas, e guarda o indice da maior media */
    {
       for(i=0; i<(num_alunos-1); i++)
       {
          if(media[i]>maior_media)
          {
             maior_media = media[i];
             indice_maior = i;
          }
       
       }
    
    i=j;
    vet_decrescente[i] = matricula[indice_maior]; /* guarda a matricula correspondente a maior media no vetor */
    media[indice_maior] = 0; /* e depois a maior media recebe 0 para que o programa encontre a nova maior media */
    
    }
    
    for(i=0; i<(num_alunos-1); i++) /* mostra as matriculas referentes as medias dos alunos que estao em ordem descrescente */
       printf("%d\n",vet_decrescente[i]);
    system("pause");
    
    }

    Olá, agora o programa já roda normal, mas o resultado está errado, vou analisar o algoritmo agora pra achar onde está o outro erro rsrs Brigadu :D

  2. Boa noite galera, sou novo aqui no fórum, e vim até aqui porque estou com um problema no meu algoritmo, ele le o primeiro nome e quando entra no laço while o programa da erro e aparece a mensagem " o programa parou de funcionar...", gostaria que vocês pudessem dar uma olhada no meu algoritmo e me ajudassem a encontrar o erro, para melhor entendimento do código vou colocar o exercício desse algoritmo abaixo;

    Fazer um algoritmo que receba o nome do aluno, a matrícula do aluno, a nota da primeira prova e a nota da segunda prova

    até que o nome do aluno seja igual a “FIM”. Imprima a matrícula dos alunos em ordem decrescente

    de acordo com as médias dos alunos.

    Meu código:

    #include <stdio.h>
    #include <string.h>
    
    
    int main()
    {
    
    char nome[20];
    float nota1[20],nota2[20],media[20];
    int matricula[20],i,maior_media=0,num_alunos=0,indice_maior=0,j=0,vet_decrescente[20];
    
    i=0;
    
    scanf("%s",&nome[i]);
    num_alunos++;
    
    while(strcmp(nome[i],"FIM")!=0) /* le nomes, notas e matriculas enquanto nome for diferente de "FIM" */
    {
       scanf("%d",&matricula[i]);
       scanf("%f",&nota1[i]);
       scanf("%f",&nota2[i]);
    
       media[i]= (nota1[i]+nota2[i])/2;
    
       i++;
       
       scanf("%s",&nome[i]);
       num_alunos++;
    }
    
    for(i=0,j=0; i<(num_alunos-1); i++,j++) /* encontra a maior media das notas, e guarda o indice da maior media */
    {
       for(i=0; i<(num_alunos-1); i++)
       {
          if(media[i]>maior_media)
          {
             maior_media = media[i];
             indice_maior = i;
          }
       
       }
    
     i=j;
     vet_decrescente[i] = matricula[indice_maior]; /* guarda a matricula correspondente a maior media no vetor */
     media[indice_maior] = 0; /* e depois a maior media recebe 0 para que o programa encontre a nova maior media */
    
    }
    
    for(i=0; i<(num_alunos-1); i++) /* mostra as matriculas referentes as medias dos alunos que estao em ordem descrescente */
       printf("%d\n",vet_decrescente[i]);
    
    return 0;
    }

×
×
  • Criar Novo...