Ir ao conteúdo

Posts recomendados

Postado

Então, alguém sabe onde posso estar errando para a média não ser ordenada da forma correta?

Exemplo:

Quantidade: 5
6
7
8
5
8
4
3
2
1
7
6
8
6.5
7
9
4
3
2
7
9
Notas (gerais): [6.5] [4.3] [5.5] [6.6] [5.3]
Notas (ordenadas): [4.3] [5.0] [5.0] [6.0] [6.0]

Eu ordeno, mas não exibe as notas ordenadas IGUAIS à media obtida.

#include <stdio.h>
int main(void) {
	int qA;
	printf("Quantidade: "); scanf("%d", &qA);
	double mediaAluno[qA], soma = 0.0, n1, n2, n3, n4;
	for (int i = 0; i < qA; ++i) {
		scanf("%lf %lf %lf %lf", &n1, &n2, &n3, &n4);
		soma += n1+n2+n3+n4;
		mediaAluno[i] = soma/4;
		soma = 0.0;
	}
	printf("Notas (gerais): ");
	for (int i = 0; i < qA; ++i) {
		printf("[%.1lf] ", mediaAluno[i]);
	}
	for(int i = 1; i < qA; i++){
	    for(int j = 0; j < qA-1; j++){
	        if (mediaAluno[j]>mediaAluno[j+1]) {
		        int tr = mediaAluno[j];
		        mediaAluno[j] = mediaAluno[j+1];
		        mediaAluno[j+1] = tr;
	        }
	    }
	}
	printf("\n");
	printf("Notas (ordenadas): ");
	for (int i = 0; i < qA; ++i) {
		printf("[%.1lf] ", mediaAluno[i]);
	}
	return (0);
}

 

Postado

A categoria de variável [categoria de dados]  da variável 'tr' é incomparável com tipo no vetor 'mediaAluno' como resultado há arredondamento de frações.

 

Corrigido

#include <stdio.h>
int main (void){
	int  qtdDeAlunos= 0;
	printf ("%s", "Quantidade: "), scanf ("%d", &qtdDeAlunos);
	
	double  mediaAluno [qtdDeAlunos], soma= 0.0, n1, n2, n3, n4;
	for (int  a= 0; a < qtdDeAlunos; ++ a) {
		scanf ("%lf %lf %lf %lf", &n1, &n2, &n3, &n4);
		
		soma= n1 + n2 + n3 + n4;
		mediaAluno[a]= soma / 4.0;
		
		soma= 0.0;
	}
	
	printf("Notas (gerais): ");
	for (int  a= 0; a < qtdDeAlunos; ++ a) {
		printf("[%.1f] ", mediaAluno [a]);
	}
	
	for (int  i= 1; i < qtdDeAlunos; ++ i ) {
	     for (int  j= 0; j < qtdDeAlunos - 1; ++ j) {
	        if (mediaAluno [j] > mediaAluno [j + 1]) {
		        double tr= mediaAluno [j];
		        
		        mediaAluno [j]= mediaAluno[j + 1];
		        mediaAluno [j + 1]= tr;
	}   }   }
	
	printf ("\n");
	printf ("%s", "Notas (ordenadas): ");
	for (int  a= 0; a < qtdDeAlunos; ++ a) {
		printf("[%.1f] ", mediaAluno [a]);
	}
	
	return 0;
}

 

  • Curtir 1

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!