Ir ao conteúdo

Posts recomendados

Postado

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 =/

Postado
#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 =/ 

Postado

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
Postado

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
Postado

@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
Postado

eu nao estava botando tudo em float, agora que botei apareceu os valores corretos, falta de atençao.. vou continuar fazendo, qualquer coisa eu retorno aqui, valeu quem tentou!

Postado

Só uma observação, por padrão o tipo da função main() deve ser int, e esta retorna 0 quando é concluída corretamente, informando ao sistema que o programa foi concluído sem erros.

int main(){
  
  return 0;
}

 

  • Curtir 1
Postado
#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.. 

Postado
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
Postado
#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!

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!