VegasColt 0 Denunciar post Postado Outubro 28, 2009 boa tarde gente eu to com exercicio aqui que envolve funções e to meio perdido o exercicio e simples o profesor quer q eu tire a media de 3 notas de um determinado aluno,so q ele quer q essa media seja tirada em uma função eu construir o programa so q nao to conseguindo rodar #include <stdio.h> #include <stdlib.h> int mediaaluno(float not1[],float not2[],float not3[]); float md[5]; int i ; for(i=0;i<5;i++) { md[i]=not1[i]+not2[i]+not3[i]/3; } return(md[i]); int main() { char string[10][5]; float mdt[5],n1[5],n2[5],n3[5]; int i ; //Construção do Looping e dos Array for(i=0;i<5;i++) { // L nome do aluno printf("Entre com o nome do %d Aluno: \t",i); gets( string[i] ); fflush(stdin); printf("Entre com a primeira nota do aluno %d \t",i); scanf("%f", &n1[i]); fflush(stdin); // Digita segunda nota printf("Entre com a segunda nota do aluno %d \t",i); scanf("%f", &n2[i]); fflush(stdin); // Digita terceira nota printf("Entre com a terceira nota do aluno %d \t",i); scanf("%f", &n3[i]); fflush(stdin); // Tira a mdia mdt[i] = mediaaluno(n1[i],n2[i],n3[i]); printf("\n"); printf("O aluno %s , obteve a media de %.2f \n\n",string[i],mdt[i]); system("pause"); return(0); } alguem por favor pode me dizer aonde eu estou errando? Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 28, 2009 O exercicio n pede para fazer a função em arrays e sim de um determinado aluno, entaum ficaria simples assim: float media(float n1, float n2, float n3){ float resp=0.0; resp=(n1+n2+n3)/3; return resp; } []s Compartilhar este post Link para o post Compartilhar em outros sites
VegasColt 0 Denunciar post Postado Outubro 28, 2009 O exercicio n pede para fazer a função em arrays e sim de um determinado aluno, entaum ficaria simples assim: float media(float n1, float n2, float n3){ float resp=0.0; resp=(n1+n2+n3)/3; return resp; } []s entendi quitZAUMMM,mais tipo como eu faria isso se eu tivesse q fazer pra varios alunos,pq meu professor e maluco ele concerteza vai pedir Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 28, 2009 a função n vai mudar, oq vai mudar são os parametros que serão passados exemplo: Aluno 1 Nota 1: 5.0 Nota 2: 5.0 Nota 3: 5.0 Média : media(5.0, 5.0, 5.0) => 5.0 Aluno2: Nota 1: 10.0 Nota 2: 10.0 Nota 3: 10.0 Média : media(10.0, 10.0, 10.0) => 10.0 Ou seja no seu programa a variavel q vai receber a média sim precisa ser um vetor assim: for(i=0;;) mediaT[i] = media(nota1[i], nota2[i], nota3[i]); []s Compartilhar este post Link para o post Compartilhar em outros sites
VegasColt 0 Denunciar post Postado Outubro 28, 2009 Ou seja no seu programa a variavel q vai receber a média sim precisa ser um vetor assim: for(i=0;;) mediaT[i] = media(nota1[i], nota2[i], nota3[i]); []s no caso eu declararia a função assim float media(float not1[],float not2[],float not3[]) { float md; int i ; for(i=0;i<5;i++) { md=not1[i]+not2[i]+not3[i]/3; } return(md); } e no programa eu chamaria assim ........ ........ mediaT[i] = media(nota1[i], nota2[i], nota3[i]); ....... ....... Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 28, 2009 já disse pra você sobre a função q te passei: a função n vai mudar, []s Compartilhar este post Link para o post Compartilhar em outros sites
VegasColt 0 Denunciar post Postado Outubro 28, 2009 nao consegui visualizar ainda Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 28, 2009 Camarada é o seguinte, independente de quantos alunos são, a função que devolve a média é a mesma, pq oq será um vetor é onde esse retorno da função será guardado, veja um esboço: #include <stdio.h> float media(float n1, float n2){ float resp=0.0; resp=(n1+n2)/2; return resp; } int main(){ float *nota1, *nota2; int N, i=0; printf("Digite de quantos alunos fara a leitura: "); scanf("%d", &N); nota1 = (float *) malloc(sizeof(float)*N); nota2 = (float *) malloc(sizeof(float)*N); for(;i<N;i++){ printf("Digite a primeira nota do aluno %d: ", i+1); scanf("%f", ¬a1[i]); printf("Digite a segunda nota do aluno %d: ", i+1); scanf("%f", ¬a2[i]); } for(i=0;i<N;i++) printf("A media do aluno %d %c: %.2f\n", i+1, 130, media(nota1[i], nota2[i])); free(nota1); free(nota2); return 0; } Fiz um simples exemplo com somente 2 notas. []s Compartilhar este post Link para o post Compartilhar em outros sites
VegasColt 0 Denunciar post Postado Outubro 28, 2009 Camarada é o seguinte, independente de quantos alunos são, a função que devolve a média é a mesma, pq oq será um vetor é onde esse retorno da função será guardado, veja um esboço: #include <stdio.h> float media(float n1, float n2){ float resp=0.0; resp=(n1+n2)/2; return resp; } int main(){ float *nota1, *nota2; int N, i=0; printf("Digite de quantos alunos fara a leitura: "); scanf("%d", &N); nota1 = (float *) malloc(sizeof(float)*N); nota2 = (float *) malloc(sizeof(float)*N); for(;i<N;i++){ printf("Digite a primeira nota do aluno %d: ", i+1); scanf("%f", ¬a1[i]); printf("Digite a segunda nota do aluno %d: ", i+1); scanf("%f", ¬a2[i]); } for(i=0;i<N;i++) printf("A media do aluno %d %c: %.2f\n", i+1, 130, media(nota1[i], nota2[i])); free(nota1); free(nota2); return 0; } Fiz um simples exemplo com somente 2 notas. []s agora eu conseguir entender.... vlw,vou fazer o meu codigo agora!!!! so uma duvida, isso vale pra qualquer vetor,tipo eu tenho 2 vetores eu quero criar uma função pra multiplicar seus valores,e so aplicar isso tambem? tem um exercicio antigo q quero colocar função pra treinar pq isso e importante pakas...por isso a pergunta Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 28, 2009 Sim a função recebe apenas os valores, em casos especificos pode se aplicar o uso de vetor nas funções claro, + pelo que o seu exercicio pede não precisa! []s Compartilhar este post Link para o post Compartilhar em outros sites