Ir ao conteúdo
  • Cadastre-se

Estou com dificuldade num problema de Vetores com Laço de Repetiçao


Posts recomendados

Faça um algoritmo que leia código e notas de 15 alunos. Após a leitura faça: a) Imprima o código e a média dos alunos aprovados ( Média >= 7.0 ). B) Imprima o código e a média dos alunos em Recuperação ( 5.0 >= Média < 7.0 ). c) Imprima o código e a média dos alunos reprovados ( Média < 5.0 ). d) Imprima o percentual de alunos aprovados. e) Imprima o percentual de alunos reprovados.

 

Tenho que entregar esse problema dia 24/05 e nao estou conseguindo fazer, alguém me da uma força =/

Link para o comentário
Compartilhar em outros sites

#include<stdio.h>

main()
{
	int codigo[5], media, resultado;
	float nota[5];
	for(int i=0; i<5;i++)
	{
		printf("Digite o codigo do aluno: ");
		scanf("%d", &codigo[i]);
		printf("Digite a nota do aluno: ");
		scanf("%f", &nota[i]);
	}
		for(int i=0;i<5;i++)
	{
		resultado = resultado + nota[i];
		media = resultado/5;
	}
	for(int i=0; i<5;i++)
	{
		if(nota[i]>=7.0)
		{
			printf("notas maior q 7: %.1f\n", nota[i]);
		}
	}
	
}

@Carlos Zanon  so que nao estou encontrando a logica, deve ter algum erro no meio do codigo que nao estou vendo =/ 

Link para o comentário
Compartilhar em outros sites

Para postar códigos use a tag CODE apertando o botão <> no topo do campo de respostas, assim você preserva a formatação do código e evita que o fórum faça alterações nele.

Por exemplo, o fórum "comeu" todos os [ i ] (sem espaços) do seu código, pois no fórum isso é a tag para deixar o texto em itálico, então o texto do seu código está em itálico a partir do primeiro que foi encontrado (os demais apenas somem porque o texto já tá em itálico).

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

Então, neste caso você deveria estar acessando os valores do vetor pelo indice, e uma boa ideia seria colocar esses valores em um outro vetor a parte só para receber os valores que você precisa para cada uma das situações.

Outro ponto é que você está declarando inteiros, mas está tentando usar valores double para comparar.

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

@Danillo Pain

Seu problema é mais com conceito de vetores do que com o programa parece.

Vou lhe dar um exemplo prático.


Quando você está na escola, existe uma lista de chamadas em cada sala, correto? Cada aluno, se encontra em uma posição. (Ignore o tipo de ordenação)

Aluno 1 = Aline
Aluno 2 = Carlos
Aluno 3 = Danilo

 

Agora imagine isso dentro de um vetor.

[ "Aline", "Carlos", "Danilo" ]

Agora, imagine o professor dessa sala, como o programa e siga o dialogo:

1- Você: Quero um aluno.
2- Professor: Qual aluno? O Aluno 1?
3- Você: Quero o aluno 2!
4- Professor: Ah, o "Carlos".

 

Em linha de código você está tendo problemas no item 3 ali, você não está sabendo informar qual posição você quer trabalhar.

 

13 minutos atrás, Danillo Pain disse:

        scanf("%f", &codigo);

 

Você precisa informar qual posição você quer trabalhar. Quando você não informa ele utiliza a posição inicial (0)

 

Muda pra:

          scanf("%f", &codigo[i]); 

Faça as mesmas coisas nos outros trechos onde você utiliza os laços e deveria acessar as posições corretas ;)

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

#include<stdio.h>

main()
{
	int codigo[5];
	float nota[5], media7, resultado7, maior7, media5, resultado5, maior5, menor4, media4, resultado4;
	for(int i=0; i<5;i++)
	{
		printf("Digite a nota do aluno: ");
		scanf("%f", &nota[i]);
	}
	for(int i=0; i<5;i++)
	{
		if(nota[i]>=7.0)
		{
			printf("Notas maior que 7.0: %.2f\n", nota[i]);
			resultado7 = resultado7 + nota[i];
		}
			maior7=nota[i];

	}
		media7=resultado7/maior7;
		printf("MEDIA 7: %.2f\n", media7);
		
	for(int i=0; i<5;i++)
	{
		if(nota[i]>=5.0&&nota[i]<7.0)
		{
			printf("Notas maior que 5.0: %.2f\n", nota[i]);
			resultado5 = resultado5 + nota[i];
		}
			maior5=nota[i];
	}
			media5=resultado5/maior5;
			printf("MEDIA 5 ate 7: %.2f\n\n", media5);
	for(int i=0; i<5;i++)
	{
		if(nota[i]<5.0)
		{
			printf("Notas menor que 5.0: %.2f\n", nota[i]);
			resultado4 = resultado4 + nota[i];
		}
			menor4=nota[i];

	}
		media4=resultado4/menor4;
		printf("MEDIA ate 5: %.2f\n", media4);
}

Travei aqui, nao to conseguindo fazer a media de cada um, aprovados etc.. 

Link para o comentário
Compartilhar em outros sites

2 horas atrás, Danillo Pain disse:

Faça um algoritmo que leia código e notas de 15 alunos

 

Está mal formulado o enunciado ou é um teste de lógica o enunciado. E se for um teste, pra você, faltou um pouco de lógica pra entender também.

 

Quantas notas cada aluno deveria possuir?

somatoria = nota[0] + ... + nota[n];
media = somatoria / n

Se for apenas uma, assume-se que a própria nota é a média.

 

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

#include<stdio.h>

main()
{
	int codigo[15], porcent[2];
	float nota[15], media[3], mediatotal[3], soma[3];
	soma[0]=0; soma[1]=0; soma[2]=0; mediatotal[0]=0; mediatotal[1]=0; mediatotal[2]=0; media[0]=0; media[1]=0; media[2]=0; 
	for(int i=0; i<15;i++)
	{
		printf("Digite o codigo do aluno: ");
		scanf("%d", &codigo[i]);
		printf("Digite a nota do aluno: ");
		scanf("%f", &nota[i]);
	}
	for(int i=0; i<15;i++)
	{
		if(nota[i]>=7.0)
		{
			printf("Aluno: %d Aprovado tem nota de: %.2f\n", codigo[i], nota[i]);
			media[0] = media[0] + nota[i];
			soma[0]++;
		}
	}		
	for(int i=0; i<15;i++)
	{
		if(nota[i]>=5.0&&nota[i]<7.0)
		{
			printf("Aluno: %d em Recuperacao com nota de: %.2f\n", codigo[i], nota[i]);
			media[1] = media[1] + nota[i];
			soma[1]++;
		}
	}
	for(int i=0; i<15;i++)
	{
		if(nota[i]<5.0)
		{
			printf("Aluno: %d Reprovado tem nota de: %.2f\n", codigo[i], nota[i]);
			media[2] = media[2] + nota[i];
			soma[2]++;
		}
	}
	mediatotal[0]=media[0]/soma[0];
	mediatotal[1]=media[1]/soma[1];
	mediatotal[2]=media[2]/soma[2];
	porcent[0]=(soma[0]*100)/15;
	porcent[1]=(soma[2]*100)/15;
	printf("\nMedia dos Aprovados: %0.1f\n", mediatotal[0]);
	printf("Media dos que estão em Recuperacao: %0.1f\n", mediatotal[1]);
	printf("Media dos Reprovados: %0.1f\n", mediatotal[2]);
	printf("\n\nPorcentagem dos Aprovados é: %d%%", porcent[0]);
	printf("\nPorcentagem dos Reprovados é: %d%%", porcent[1]);
}

@Carlos Zanon consegui fazer! Valeu pela ajuda!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!