Jump to content

Calcular média de colunas de matrix


Guest João Antunes

Recommended Posts

Boa tarde,

 

Estou a tentar desenvolver um programa para calcular a media de cada coluna de uma matriz tenho o seguinte codigo abaixo e já tentei varias maneiras de calcular e não consigo, agradeço desde ja a ajuda.


 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>


    int main()
{
    float TabelaT [3][5];
    int J,T;

    printf(" Introduza Os Tempos Dos Atletas 1,2 e 3 %dx%d: \n", 5,3);

        for(J=0; J<2; J++)
        {
        for(T=0; T<4; T++)
        {
            scanf("%d", &TabelaT[3][5]);
        }
        }


return 0;
Link to comment
Share on other sites

#include <stdio.h>

#define MAX_ATLETAS 3
#define MAX_REGISTOS_TEMPO 5


void inserirTempos(float tabelaTempos[][MAX_REGISTOS_TEMPO]){

    for (int atletaAtual = 0; atletaAtual < MAX_ATLETAS; atletaAtual++){

        for (int registoAtual = 0; registoAtual < MAX_REGISTOS_TEMPO; registoAtual++){

            printf("Insira o tempo %d do atleta %d:", registoAtual + 1, atletaAtual + 1);
            scanf("%f", &(tabelaTempos[atletaAtual])[registoAtual]);

        }

    }

}

float calcMedia(float tabelaTempos[][MAX_REGISTOS_TEMPO], float media[]){

    for (int atletaAtual = 0; atletaAtual < MAX_ATLETAS; atletaAtual++){

        for (int registoAtual = 0; registoAtual < MAX_REGISTOS_TEMPO; registoAtual++){
            media[atletaAtual] += tabelaTempos[atletaAtual][registoAtual];

        }
        media[atletaAtual] /= (float)MAX_REGISTOS_TEMPO;

    }

    return 0;
}

void printarMedia(float media[]){

    for (int mediaAtual = 0; mediaAtual < MAX_ATLETAS; mediaAtual++){
        printf("A média de tempo do atleta %d é:%.2f.\n", mediaAtual + 1, media[mediaAtual]);
    }

}


int main(){

    float tabelaTempos[MAX_ATLETAS][MAX_REGISTOS_TEMPO];
    float media[3];

    inserirTempos(tabelaTempos);
    calcMedia(tabelaTempos, media);
    printarMedia(media);

    return 0;
}

seria isto que estavas a querer fazer?

Insira o tempo 1 do atleta 1:1.0
Insira o tempo 2 do atleta 1:1.5
Insira o tempo 3 do atleta 1:2.0
Insira o tempo 4 do atleta 1:2.5
Insira o tempo 5 do atleta 1:3.0
Insira o tempo 1 do atleta 2:1.0
Insira o tempo 2 do atleta 2:1.5
Insira o tempo 3 do atleta 2:2.0
Insira o tempo 4 do atleta 2:2.5
Insira o tempo 3 do atleta 2:2.0
Insira o tempo 4 do atleta 2:2.5
Insira o tempo 5 do atleta 2:3.0
Insira o tempo 1 do atleta 3:5.0
Insira o tempo 2 do atleta 3:4.0
Insira o tempo 3 do atleta 3:3.0
Insira o tempo 4 do atleta 3:2.0
Insira o tempo 5 do atleta 3:1.0
A média de tempo do atleta 1 é:3.00.
A média de tempo do atleta 2 é:2.00.
A média de tempo do atleta 3 é:3.00.
Link to comment
Share on other sites

4 horas atrás, Zamalor disse:

#include <stdio.h>

#define MAX_ATLETAS 3
#define MAX_REGISTOS_TEMPO 5


void inserirTempos(float tabelaTempos[][MAX_REGISTOS_TEMPO]){

    for (int atletaAtual = 0; atletaAtual < MAX_ATLETAS; atletaAtual++){

        for (int registoAtual = 0; registoAtual < MAX_REGISTOS_TEMPO; registoAtual++){

            printf("Insira o tempo %d do atleta %d:", registoAtual + 1, atletaAtual + 1);
            scanf("%f", &(tabelaTempos[atletaAtual])[registoAtual]);

        }

    }

}

float calcMedia(float tabelaTempos[][MAX_REGISTOS_TEMPO], float media[]){

    for (int atletaAtual = 0; atletaAtual < MAX_ATLETAS; atletaAtual++){

        for (int registoAtual = 0; registoAtual < MAX_REGISTOS_TEMPO; registoAtual++){
            media[atletaAtual] += tabelaTempos[atletaAtual][registoAtual];

        }
        media[atletaAtual] /= (float)MAX_REGISTOS_TEMPO;

    }

    return 0;
}

void printarMedia(float media[]){

    for (int mediaAtual = 0; mediaAtual < MAX_ATLETAS; mediaAtual++){
        printf("A média de tempo do atleta %d é:%.2f.\n", mediaAtual + 1, media[mediaAtual]);
    }

}


int main(){

    float tabelaTempos[MAX_ATLETAS][MAX_REGISTOS_TEMPO];
    float media[3];

    inserirTempos(tabelaTempos);
    calcMedia(tabelaTempos, media);
    printarMedia(media);

    return 0;
}

seria isto que estavas a querer fazer?


Insira o tempo 1 do atleta 1:1.0
Insira o tempo 2 do atleta 1:1.5
Insira o tempo 3 do atleta 1:2.0
Insira o tempo 4 do atleta 1:2.5
Insira o tempo 5 do atleta 1:3.0
Insira o tempo 1 do atleta 2:1.0
Insira o tempo 2 do atleta 2:1.5
Insira o tempo 3 do atleta 2:2.0
Insira o tempo 4 do atleta 2:2.5
Insira o tempo 3 do atleta 2:2.0
Insira o tempo 4 do atleta 2:2.5
Insira o tempo 5 do atleta 2:3.0
Insira o tempo 1 do atleta 3:5.0
Insira o tempo 2 do atleta 3:4.0
Insira o tempo 3 do atleta 3:3.0
Insira o tempo 4 do atleta 3:2.0
Insira o tempo 5 do atleta 3:1.0
A média de tempo do atleta 1 é:3.00.
A média de tempo do atleta 2 é:2.00.
A média de tempo do atleta 3 é:3.00.

Sim exatamente o que eu pretendia, eu estava a fazer assim :

 

for(i = 0; i < n; i++) for(j = 0; j < n; j++)

soma += mat[j];

media = soma/((float)n*(float)n)

 

e depois fazia printf á media mas dava sempre 0, é preciso treino para por o que se pensa no programa, 

muito obrigado.

Link to comment
Share on other sites

Afinal, não esta correto, não é a media de cada atleta é a media de cada coluna ou seja a media dos tempos dos 3 atletas 

depois necessito de ver qual é o melhor tempo de cada atleta nas 5 sessoes pensei no codigo abaixo;

n=3; r
maior=v[0];
menor=v[0];
for (j=0;j<n;j++){
if (v[j]>maior) maior=v[j];
if (v[j]<menor) menor=v[j];
}

Link to comment
Share on other sites

@Zamalor, mais uma vez, não dás sequer oportunidade aos users de perceberem o que estão a fazer de errado. Chegas aqui e postas cóigo como se não houvesse amanhã. Não é esta a forma de ajudar os users que o forum defende. Aliás, não estás a ajudar em nada! Se queres simplesmente fazer código, monta um negócio e o pessoal paga para tu lhes fazeres código. Agora, quem quer aprender, não está a ser ajudado em nada por ti!

  • Vote 1

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Link to comment
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
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.