Ir para conteúdo

POWERED BY:

Arquivado

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

VegasColt

Funções em C

Recommended Posts

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

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

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

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

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

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

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", &nota1[i]);
        printf("Digite a segunda nota do aluno %d: ", i+1);
        scanf("%f", &nota2[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

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", &nota1[i]);
        printf("Digite a segunda nota do aluno %d: ", i+1);
        scanf("%f", &nota2[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

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

×

Informação importante

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