Ir para conteúdo
Fórum Script Brasil

PedroCJ

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Tudo que PedroCJ postou

  1. Alguém sabe o porquê? :o Isto pode não ajudar muito, mas só estou a fazer um double post porque tenho de entregar isto amanhã :S Supostamente a variável nome[32][32] devia de armazenar dois nomes por pessoa (o primeiro e o ultimo nome), mas por alguma razão isto compila, mas da forma que eu estou a fazer, depois dá erro quando chega à parte de dizer a média de cada aluno. O programa simplesmente pára de correr.
  2. Oh, estive agora a tentar melhorar o programa e sim, na realidade tenho mais uma questão: Não estou a pôr o código todo, porque os printf's que vem a seguir estão bem, é só mesmo na parte do programa quando ele tem de dizer os nomes é que não está a funcionar: o dev c++ compila, mas depois dá erro enquanto está a correr. #include <stdio.h> #include <stdlib.h> main() { /* -- A media da turma; -- A media de cada aluno; -- A media maxima e a media minima; -- Quantos alunos tiveram media positiva; -- Quantos alunos tiveram media negativa; - Quantos alunos tiveram nota superior a 16; - Quantos alunos tiveram nota entre 12 e 15. - Quantos alunos tiveram nota inferior a 10. */ /* n1 = nota1, n2 = nota2, maior=media maior, menor= media menor, mediaf = media final na = numero de alunos, c = controlo, nap = numero de alunos com media positiva, nan = numero de alunos com media negativa ns16 - numero de alunos com nota superior a 16, n12_n15 - nota superior a 12 e inferior a 15,ni10 - numero de alunos com nota inferior a 10 nada= numero do aluno;*/ float maior, menor, mediaf; float media[32],n1[32],n2[32]; char nome[32][32]; int c,na,nap=0,nan=0,n16=0,n12_n15=0,ni10=0, nada=0; printf("Qual e' o numero de alunos da turma? \n(Tenha em conta que a turma podera ter apenas ate 32 alunos.)\n"); scanf("%d", &na); /* ------------------------------------------------------------------------------------------ Media Individual ---------------------------------------------------------------------------------------------*/ for(c=0;c<=na-1;c++) { nada=nada+1; printf("\nQual o nome do aluno numero %d?\n(Insira o primeiro e o ultimo nome)\n", nada); scanf("%s%s", &nome[c][c]); printf("Qual foi a nota que o(a) %s %s teve no primeiro teste?\n", nome[c]); scanf("%f", &n1[c]); printf("E no segundo?\n"); scanf("%f", &n2[c]); media[c]=(n1[c]+n2[c])/2; } maior=0; menor=20; for(c=0;c<=na-1;c++) { /*------------------------------------------------------------------------------------------------------- ---------------------------------------- Media da turma ----------------------------------------- -------------------------------------------------------------------------------------------------------*/ mediaf=mediaf+media[c]; /* ------------------------------------------------------------------------------------ --------------------------------------Media Maxima e media minima----------------------- ----------------------------------------------------------------------------------------*/ if(media[c]>maior) maior=media[c]; if(media[c]<menor) menor=media[c]; /*------------------------------------------------------------------------------------ -------------------------------Numero de alunos que tiveram media positiva ----------------- ------------------------------------------------------------------------------------*/ if(media[c]>=10) nap=nap+1; /*------------------------------------------------------------------------------------ -------------------------------Numero de alunos que tiveram media negativa ----------------- ------------------------------------------------------------------------------------*/ if(media[c]<10) nan=nan+1; /*------------------------------------------------------------------------------------ -------------------------------Numero de alunos com nota superior a 16 --------------- ------------------------------------------------------------------------------------*/ if(n1[c]>16 || n2[c]>16) n16=n16+1; /*------------------------------------------------------------------------------------ -----------------------Numero de alunos com nota superior 12 e inferior a 15---------- ------------------------------------------------------------------------------------*/ if((n1[c]>12 && n1[c]<15) || (n2[c]>12 && n2[c]<15)) n12_n15=n12_n15+1; /*------------------------------------------------------------------------------------ -----------------------Numero de alunos com nota inferior a 10------------------------ ------------------------------------------------------------------------------------*/ if(n1[c]<10 || n2[c]<10) ni10=ni10+1; printf("------------------------\nMedias finais da turma:\n------------------------"); printf("--------------------------\nO %s %s tem uma media de %f\n--------------------------\n", nome[c][c], media[c]); } system("pause"); } Acredito que seja ou aqui: printf("\nQual o nome do aluno numero %d?\n(Insira o primeiro e o ultimo nome)\n", nada); scanf("%s%s", &nome[c][c]); ...ou aqui: printf("------------------------\nMedias finais da turma:\n------------------------"); printf("--------------------------\nO %s %s tem uma media de %f\n--------------------------\n", nome[c][c], media[c]); ...que está o erro, mas não sei como solucionar.
  3. Li com mais atenção o primeiro post, e aparentemente agora está a funcionar devidamente - armazenar as notas foi definitivamente a melhor solução. Estava também a fazer confusão com uns printf's, mas agora também já estão resolvidos. Muito obrigado pelas respostas. :)
  4. Então era suposto criar uma matriz para cada a 'n1' e a 'n2', certo? Qualquer das formas eu comecei a fazer isso e isto deu-me uns erros. Eu tentei fazer com base na matriz do 'nome' e da 'media', mas de certeza que estou a fazer alguma coisa de errado. Não consegui ainda perceber o quê. :x Podia-me dizer como devia de ficar o codigo e depois eu irei estudá-lo e perceber o porquê? :) Obrigado.
  5. Bom dia! Comecei a trabalhar em C há algumas semanas atrás e tenho um trabalho para entregar na quinta. O único problema é que nem todas as funcionalidades do meu programa estão a trabalhar devidamente. Se alguém me poder ajudar, agradeço. O programa devia de calcular: -- A media da turma; -- A media de cada aluno; -- A media maxima e a media minima; -- Quantos alunos tiveram media positiva; -- Quantos alunos tiveram media negativa; - Quantos alunos tiveram nota superior a 16; - Quantos alunos tiveram nota entre 12 e 15. - Quantos alunos tiveram nota inferior a 10. As últimas 3 partes do programa, por alguma razão, não estão a funcionar devidamente. :X Aqui está o código: #include <stdio.h> #include <stdlib.h> main() { /* -- A media da turma; -- A media de cada aluno; -- A media maxima e a media minima; -- Quantos alunos tiveram media positiva; -- Quantos alunos tiveram media negativa; - Quantos alunos tiveram nota superior a 16; - Quantos alunos tiveram nota entre 12 e 15. - Quantos alunos tiveram nota inferior a 10. */ /* n1 = nota1, n2 = nota2, maior=media maior, menor= media menor, mediaf = media final na = numero de alunos, c = controlo, nap = numero de alunos com media positiva, nan = numero de alunos com media negativa ns16 - numero de alunos com nota superior a 16, n12_n15 - nota superior a 12 e inferior a 15,ni10 - numero de alunos com nota inferior a 10 */ float n1, n2, maior, menor, mediaf; float media[32]; char nome[32][30]; int c,na,nap=0,nan=0,n16=0,n12_n15=0,ni10=0; printf("Qual e' o numero de alunos da turma: "); scanf("%d", &na); /* ------------------------------------------------------------------------------------------ Media Individual ---------------------------------------------------------------------------------------------*/ for(c=0;c<=na-1;c++) { printf("Qual o nome do aluno: "); scanf("%s", &nome[c]); printf("Qual a nota do primeiro teste: "); scanf("%f", &n1); printf("Qual a nota do segundo teste: "); scanf("%f", &n2); media[c]=(n1+n2)/2; } /* ------------------------------------------------------------------------------------ --------------------------------------Media Maxima e media minima------------------ ----------------------------------------------------------------------------------------*/ maior=0; menor=20; for(c=0;c<=na-1;c++) { /*------------------------------------------------------------------------------------------------------- ---------------------------------------- Media da turma ----------------------------------------- -------------------------------------------------------------------------------------------------------*/ mediaf=mediaf+media[c]; if(media[c]>maior) maior=media[c]; if(media[c]<menor) menor=media[c]; /*------------------------------------------------------------------------------------ -------------------------------Numero de alunos que tiveram media positiva ----------------- ------------------------------------------------------------------------------------*/ if(media[c]>=10) nap=nap+1; /*------------------------------------------------------------------------------------ -------------------------------Numero de alunos que tiveram media negativa ----------------- ------------------------------------------------------------------------------------*/ if(media[c]<10) nan=nan+1; /*------------------------------------------------------------------------------------ -------------------------------Numero de alunos com nota superior a 16 --------------- ------------------------------------------------------------------------------------*/ if(n1>16 || n2>16) n16=n16+1; /*------------------------------------------------------------------------------------ -----------------------Numero de alunos com nota superior 12 e inferior a 15---------- ------------------------------------------------------------------------------------*/ if((n1>12 && n1<15) || (n2>12 && n2<15)) n12_n15=n12_n15+1; /*------------------------------------------------------------------------------------ -----------------------Numero de alunos com nota inferior a 10------------------------ ------------------------------------------------------------------------------------*/ if(n1<10 || n2<10) ni10=ni10+1; printf("\nO %s tem uma media de %f", nome[c], media[c]); } mediaf=mediaf/na; /* media final */ printf("\nA media da turma e' de %f.", mediaf); printf("\nA media maxima foi de %f", maior); printf("\nA media minima foi de %f", menor); printf("\nHouve %d alunos com media positiva", nap); printf("\nHouve %d alunos com media negativa", nan); printf("\nHouve %d alunos com nota superior a 16", n16); printf("\nHouve %d alunos com uma nota superior a 12 e inferior a 15", n12_n15); printf("\nHouve %d alunos com nota inferior a 10", ni10); system("pause"); } ----------------------- Obrigado uma vez mais.
×
×
  • Criar Novo...