Ir ao conteúdo
  • Cadastre-se

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


marcos12345

Posts recomendados

@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
Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
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 .

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
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
Link para o comentário
Compartilhar em outros sites

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;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
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!)

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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
Link para o comentário
Compartilhar em outros sites

#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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
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.

 

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...