Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Marcos Paulo feitosa

C como armazenar a media na mesma linha do vetor ja preenchido

Recommended Posts

Estou com seguinte problema:

 

 

1-Usando vetor, calcular a média de uma turma com vinte alunos e quatro notas sendo que a
média fica armazenada na mesma linha.

 

Não sei como armazenar a media na mesma linha do vetor.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Marcos Paulo feitosa Se for VETOR e não MATRIZ, acredito que você precisa fazer nas seguintes etapas:

 

1- Declarar vetor - media[20]

2- Ler as quatros notas de um aluno

3- calcular a média dele

4- armazenar média calculada no índice do vetor - media[índice] = media_aluno;

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Marcos Paulo feitosa    o vetor tem apenas uma linha,  mas tem quantas colunas você quiser, então para esses vinte alunos de quatro notas você precisa de um vetor com 20 x 4 = 80 + 20 para a media de cada aluno  total = 100 colunas, então  para cada aluno ficará reservado 5 colunas e na hora de armazenar as notas você vai colocando a nota e somando a posição e depois de inserir as quatro notas deixa a quinta posição vazia para receber a média desse aluno e faz isso para todos os alunos,  depois pegue as quatro notas e faça a média e coloque naquela quinta posição

vetor_3.thumb.jpg.5b2fce2aa8507d4c54928e7b9560be6d.jpg

depois para imprimir vai pegando essas quinta posição e imprime como sendo a média ,    ou você pode usar uma matriz que tem muitas linhas e muitas colunas.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • 17 minutos atrás, devair1010 disse:

    @Marcos Paulo feitosa    o vetor tem apenas uma linha,  mas tem quantas colunas você quiser, então para esses vinte alunos de quatro notas você precisa de um vetor com 20 x 4 = 80 + 20 para a media de cada aluno  total = 100 colunas, então  para cada aluno ficará reservado 5 colunas e na hora de armazenar as notas você vai colocando a nota e somando a posição e depois de inserir as quatro notas deixa a quinta posição vazia para receber a média desse aluno e faz isso para todos os alunos,  depois pegue as quatro notas e faça a média e coloque naquela quinta posição

    vetor_3.thumb.jpg.5b2fce2aa8507d4c54928e7b9560be6d.jpg

    depois para imprimir vai pegando essas quinta posição e imprime como sendo a média ,    ou você pode usar uma matriz que tem muitas linhas e muitas colunas.

    Mas como faço para pular a posiçao 5

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Marcos Paulo feitosa   pode ser assim :

    p=0;
    for(j=0;j<20;j++){
        for(i=0;i<4;i++){
            printf("Digite A %d Nota do %d Aluno -> ",i+1,j+1);
            scanf("%d",& n);
            vetor[p]=n;
            p++;
        }
        printf("\n");
        p++;
    }

    com isso a quinta posição ficará vaga, e depois de fazer a média coloque na posição 4 que é a quinta posição, e vai somando cinco ao  contador .

    Editado por devair1010

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá @Marcos Paulo feitosa.

     

    12 horas atrás, Marcos Paulo feitosa disse:

    1-Usando vetor, calcular a média de uma turma com vinte alunos e quatro notas sendo que a
    média fica armazenada na mesma linha.

     

    Esse é o enunciado completo? o texto não está muito claro...

     

    Por exemplo: lento o texto, entendi que é uma média (de 20 alunos) mais a ADIÇÃO de quatro notas. Ex.:

    Calculo = Media_20_Alunos + Nota1 + Nota2 + Nota3 + Nota4

    Ou seja, seria uma vetor de 5 posições! Algo como:

    vetor[1] = 7.5
    vetor[2] = 4
    vetor[3] = 6.9
    vetor[4] = 8
    vetor[5] = 7
    resultado = vetor[1] + vetor[2] + vetor[3] + vetor[4] + vetor[5] 

    Observe que "a média" (do 20 alunos) estão na "mesma linha".

     

     

    Veja como está "ambíguo".. além da minha interpretação, as sugestões de @TYSQUARE89 e @devair1010 também são para contextos diferentes! Só aqui temos 3 versões diferentes!
     

     

    Por favor, poste o enunciado completo ou tente explicar melhor como deve funcionar o seu algoritmo.

     

    O que eu tento sempre reforçar: primeiro tem que se entender o problema, só depois tentar encontrar uma resposta. Não adianta fazer um código bem feito, mas que não atenda as necessidades propostas.

     

    No aguardo.

    Editado por Simon Viegas
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 57 minutos atrás, Simon Viegas disse:

    Olá @Marcos Paulo feitosa.

     

     

    Esse é o enunciado completo? o texto não está muito claro...

     

    Por exemplo: lento o texto, entendi que é uma média (de 20 alunos) mais a ADIÇÃO de quatro notas. Ex.:

    
    Calculo = Media_20_Alunos + Nota1 + Nota2 + Nota3 + Nota4

    Ou seja, seria uma vetor de 5 posições! Algo como:

    
    vetor[1] = 7.5
    vetor[2] = 4
    vetor[3] = 6.9
    vetor[4] = 8
    vetor[5] = 7
    resultado = vetor[1] + vetor[2] + vetor[3] + vetor[4] + vetor[5] 

    Observe que "a média" (do 20 alunos) estão na "mesma linha".

     

     

    Veja como está "ambíguo".. além da minha interpretação, as sugestões de @TYSQUARE89 e @devair1010 também são para contextos diferentes! Só aqui temos 3 versões diferentes!
     

     

    Por favor, poste o enunciado completo ou tente explicar melhor como deve funcionar o seu algoritmo.

     

    O que eu tento sempre reforçar: primeiro tem que se entender o problema, só depois tentar encontrar uma resposta. Não adianta fazer um código bem feito, mas que não atenda as necessidades propostas.

     

    No aguardo.

    o enuciado esta completo 

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    agora, Marcos Paulo feitosa disse:

    Por favor, poste o enunciado completo ou tente explicar melhor como deve funcionar o seu algoritmo.

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • pelo que eu entendi tem criar um vetor [20][5] apos eu digitar quatro notas aparecer a media na ultima posiçao.

    exemplo vetor[0][0]=6 e vetor[0][1]=8 e vetor[0][2]=5 e vetor[0][3]=9 apos o preenchimento do vetor com as 4 notas no vetor[0][4]=media mas como faz isso em siclo for eu nao sei.

    Editado por Marcos Paulo feitosa
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    3 minutos atrás, Marcos Paulo feitosa disse:

    pelo que eu entendi tem criar um vetor [20][5] apos eu digitar quatro notas aparecer a media na ultima posiçao

    Pronto, tomemos por base essa definição... Nesse caso, estará usando o que chamamos de matriz, ou seja, "um vetor de com 2 ou mais dimensões". De certo modo, é também um vetor, mas é comum associarmos o termo "vetor" quanto tem apenas uma coordenada (matriz linha), e o termo "matriz" quando temos mais de 1 coordenada (como sua matriz de duas coordenadas: 20x5)... ou seja, todo vetor é uma matriz, mas quando tem apenas uma coordenada, chamamos apenas de vetor, entende?

     

    Mas vamos supor que possa ser um vetor de duas coordenadas.

     

    Daí,  a primeira coordenada representará um aluno; para a segunda coordenada, da primeira posição à quarta, representará respectivamente da primeira à quarta notas do aluno; e a quinta posição terá a média desse aluno.

     

    Pronto, teoricamente você já sabe ler as notas dos alunos:

    13 horas atrás, Marcos Paulo feitosa disse:

    Não sei como armazenar a media na mesma linha do vetor.

    ou seja, sua dúvida está na parte das médias... mas é simples. Como já citado acima, basta armazenar a média na quinta posição da segunda coordenada... ex.:
     

    notas_alunos[posAluno][5] = media_aluno;

     

     

    RESUMINDO:

    - Para calcular a média, você precisa ter as notas, logo, faça logo essa parte que ler as quatro notas de cada aluno e posta  o código aqui;

    - Após já conseguir ler as notas, insere a parte que calcular a média de cada aluno e posta o código aqui.

     

    Caso tenha dúvidas em alguma parte é só postar.

     

     

    No aguardo.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • eu fiz asim mas a media dar errado 

    #include <stdio.h>
    #include <stdlib.h>
    int main (){
        int vetor[20][5];
        int aluno,nota,soma=0;
        float media;
        for(aluno=0;aluno<20;aluno++){
            printf("Digite as 4 notas do aluno %d",aluno+1);
            for(nota=0;nota<4;nota++){
                scanf("%d",&vetor[aluno] [nota]);
                soma+=vetor[aluno] [nota];
                media=soma/4;
                vetor[aluno] [5]=media;
            }
            printf(" a media eh %f",vetor[aluno] [5]);
        }
    system("PAUSE");
    return 0;
    }

     

    Editado por Simon Viegas
    Ao postar um código, antes pressione o botão "<>" na barra de ferramentas
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    1 hora atrás, Marcos Paulo feitosa disse:

    eu fiz asim mas a media dar errado

    O que está dando errado? e onde?
     

    Entenda qual erro está dando e tente corrigir...

     

    Ex: "a resposta está saindo zerada...". Veras que declarou como int, mas para imprimir está usando um código para float ("%f"). Mude para "%d"... por ai vai...

     

    No aguardo.

    adicionado 18 minutos depois

    ADENDO:

    1 hora atrás, Simon Viegas disse:

    ou seja, sua dúvida está na parte das médias... mas é simples. Como já citado acima, basta armazenar a média na quinta posição da segunda coordenada... ex.:
     

    
    notas_alunos[posAluno][5] = media_aluno;

     

    Como o vetor de tamanho 5 vai de 0 a 4, o correto seria:

    notas_alunos[posAluno][4] = media_aluno;

     

    Logo, seria:

    vetor[aluno][4]=media;


    PS: aqui usando 5 funcionou, mas não deveria, pois é uma posição que não existe... (não sei explicar porque não dá erro!)

    Editado por Simon Viegas
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 4 horas atrás, Simon Viegas disse:

    O que está dando errado? e onde?
     

    Entenda qual erro está dando e tente corrigir...

     

    Ex: "a resposta está saindo zerada...". Veras que declarou como int, mas para imprimir está usando um código para float ("%f"). Mude para "%d"... por ai vai...

     

    No aguardo.

    adicionado 18 minutos depois

    ADENDO:

     

    Como o vetor de tamanho 5 vai de 0 a 4, o correto seria:

    
    notas_alunos[posAluno][4] = media_aluno;

     

    Logo, seria:

    
    vetor[aluno][4]=media;


    PS: aqui usando 5 funcionou, mas não deveria, pois é uma posição que não existe... (não sei explicar porque não dá erro!)

    pronto conseguir o erro estava na posição do vetor e o %d que eu tinha colocado o %f e tambem eu estava esquecendo de limpar os valores das variaveis media e soma ai quando eu calculava a media do segundo aluno somava com o do primeiro

    tai o codigo

    #include <stdio.h>
    #include <stdlib.h>
    int main (){
        int vetor[20][5];
        int aluno,nota,soma=0;
        float media;
        for(aluno=0;aluno<20;aluno++){
            printf("Digite as 4 notas do aluno %d",aluno+1);
            media=0;
            soma=0;
            for(nota=0;nota<4;nota++){
                scanf("%d",&vetor[aluno][nota]);
                soma+=vetor[aluno][nota];
                media=soma/4;
                vetor[aluno][4]=media;
            }
            printf(" a media eh %d",vetor[aluno][4]);
        }
    system("PAUSE");
    return 0;
    }

     

    Editado por Marcos Paulo feitosa
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá.

     

    Antes:

    Ao postar um código favor utilizar a tag CODE. Vide comunicado contido no topo desta página:
    Poste seus códigos corretamente!
     

    Por favor, edite sua postagem anterior removendo o código e inserindo novamente utilizando a tal tag CODE.

     

     

    Vamos lá:

     

    Alguns pontos:

    1) Você está calculando a média a cada leitura de uma nota, mas deveria fazer apenas uma vez após ter as 4 notas, ou seja, seria fora do for interno.

     

    2) Está armazenando as notas, mas na prática não está utilizando o vetor depois, ou seja, para um melhor uso, você poderia ler primeiro todas as notas, e só após calcular as médias. Pois do jeito que está, nem precisaria ter um vetor, bastaria uma variável numérica simples para ler a notas.

     

    3) Seria também interessante utilizar o vetor para exibir as quatro notas do aluno e a sua respectiva média. Algo como:

    Notas do Aluno 1: Notas x, x, x, x. Media x
    Notas do Aluno 2: Notas x, x, x, x. Media x
    Notas do Aluno 3: Notas x, x, x, x. Media x
    .
    .
    

     

    No aguardo.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • #include <stdio.h>
    #include <stdlib.h>
    int main (){
        float vetor[5][5];
        int aluno,nota,soma=0;
        float media;
        for(aluno=0;aluno<5;aluno++){
            printf("Digite as 4 notas do aluno %d",aluno+1);
            for(nota=0;nota<4;nota++){
                scanf("%f",&vetor[aluno][nota]);
            }
        }
        for(aluno=0;aluno<5;aluno++){
            printf("As 4 notas do aluno %d ",aluno+1);
            soma=0;
            for(nota=0;nota<4;nota++){
                printf("%.2f ",vetor[aluno][nota]);
                soma+=vetor[aluno][nota];
            }
            vetor[aluno][4]=(soma/4.0);
            printf("A media eh %.2f",vetor[aluno][4]);
            printf("\n");
        }
    system("PAUSE");
    return 0;
    }

    fiz assim agora

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá @Marcos Paulo feitosa.

     

    Ficou muito bom!!! :)

     

    Algumas dicas:

    - Digitei notas "7.5" e o programa me retornou média 7 (em vez de 7.5);

    - Experimente solicitar para outras pessoas executarem o programa. Não explique nada... só execute e peça para usar... analise o feedback e tente fazer as possíveis melhorias/adaptações...

     

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Simon Viegas não fiz o codigo bem feito por que eu estou apenas treinando sou iniciante ainda esto so resolvendo alguns exercicios para aprender.

    Editado por Marcos Paulo feitosa

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    18 horas atrás, Marcos Paulo feitosa disse:

    Simon Viegas não fiz o codigo bem feito por que eu estou apenas treinando sou iniciante ainda esto so resolvendo alguns exercicios para aprender.

    Sim! Tudo bem!

     

     

    Mas sugiro se atentar nesse item:

    Em 15/10/2017 às 11:35, Simon Viegas disse:

    - Digitei notas "7.5" e o programa me retornou média 7 (em vez de 7.5);

    Pois faz parte do escopo do problema. Nem toda nota é arredondada... e seu código já está utilizando float.

     

    Pra adiantar, parte do problema pode está porque está utilizando soma como int.

     

     

    No aguardo.

     

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×