Ir ao conteúdo
  • Cadastre-se

C Exercício simples de Vetores em C


Ir à solução Resolvido por Ansi C,

Posts recomendados

Boa noite pessoal, estou com uma duvida em um exercício que estou tentando fazer sobre vetores.

Segue abaixo seu enunciado:

1. Defina em C, uma estrutura de registros que irá representar bandas de música. Essa estrutura deve ter o nome da banda, que tipo de música ela toca e o número de integrantes.

2. Crie um looping para preencher as 5 estruturas de bandas criadas no exemplo passado e ao final mostrar qual banda possui mais integrantes e as bandas que o tipo de música é o rock n roll.

Estou tendo dificuldades na realização da segunda questão, na parte de mostrar qual a banda possui mais membros e as que o estilo de música é o rock n roll, quem puder me ajudar, sou grato desde já.

 

Segue meu código pré-resolvido:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main(void)
{
	struct Banda
	{
		char nome[30];
		char Tipo[30];
		int integrantes;
	}; struct Banda bandas[5];
	
	int count;
	int maior;
	for(count = 0; count < 5; count++)
	{
		fflush(stdin);
		printf("\nNome da Banda %d: ", count + 1);
		gets(bandas[count].nome);
		printf("Estilo de Musica: ");
		gets(bandas[count].Tipo);
		printf("Entre com a quantidade de integrantes: ");
		scanf("%d",&bandas[count].integrantes);
	}
	printf("\nNome das Bandas: \n");
	for(count = 0; count < 5; count++)
	{
		printf("\nBanda %d\n",count + 1);
		printf("Nome: %s\n",bandas[count].nome);
		printf("Estilo musical: %s\n",bandas[count].Tipo);
		printf("Membros: %d\n",bandas[count].integrantes);	
	}
	for(count = 0; count < 5; count++)
	{
		if (bandas[count].integrantes > maior)
			{
				maior = bandas[count].integrantes;					
			}
	}
	printf("\n\nA banda com maior numero de integrantes e: %d", maior);
	
	return 0;
}	

 

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

Olá, tudo certo!?

Então ...

 

18 horas atrás, SamuraiOcidental disse:

Defina em C, uma estrutura de registros que irá representar bandas de música

 

Quando se tem os dados, começa-se o processamento, considere para fins lógicos que a primeira banda( índice 0 do vetor de bandas )é a que tem mais componentes, use uma declaração de decisão IF para atualizar esse índice a cada ciclo comparando a banda atual no índice do loop com a banda do índice maior; a segunda parte da questão é testar se a banda atual no índice do loop é do tipo Rock n 'Roll; mais uma vez compare seu tipo com tipo pretendido usando uma outra declaração de decisão se é então imprima. No final resta apenas o índice da maior banda, usando esse índice imprima resposta que está na posição do vetor.

 

Algoritmo B (de Maior Banda)

B0:  maior ← 0
B1:  Enquanto i < 5 faça i ← 1 + i :

           Se Bandas[ i ] > Bandas[ maior ] : maior ← i
           Se 0 == Bandas[ i ] : Exibir Bandas[ i ]

B2:  Exibir Bandas[ maior ]  ▋

 

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

Olá @AnsiC, Boa noite, entendi o que você explicou mas não estou conseguindo colocar no código, poderia mostrar como seria na execução na linguagem C, ao menos a parte de mostrar qual a banda possui mais membros? No meu código consegui apenas mostrar qual a maior quantidade de integrantes, mas não a que banda eles pertencem, fico grato desde já caso possa ajudar, caso não, agradeço mesmo assim pela dica. :D

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

  • Solução

@SamuraiOcidental Boa noite!

Então ... Vamos lá

 

#include  <stdio.h>
int main( void )
{	struct Banda
	{	char nome[ 30 ];
		char tipo[ 30 ];
		int  integrantes;
	} 
	Banda bandas[ 5 ]= { 0 };
	int   index= 0;
	int   maior= 0;

	for( index= 0; index < 5; ++index )
	{	printf( "%d Nome da Banda: ", index + 1 );
		scanf( " %29[^\n]", bandas[ index ].nome );
		setbuf( stdin, NULL );

		printf( "Estilo de Musica: " );
		scanf( " %29[^\n]", bandas[ index ].Tipo );
		setbuf( stdin, NULL );
     
		printf( "Entre com a quantidade de integrantes: " );
		scanf( " %d", (& bandas[ index ].integrantes) );
		setbuf( stdin, NULL );
	}
	printf( "Nome das Bandas \n\n" );
	for( index= 0; index < 5; ++index )
	{	printf( "%d Banda\n", index + 1 );
		printf( "Nome..........: %s\n", bandas[ index ].nome );
		printf( "Estilo musical: %s\n", bandas[ index ].Tipo );
		printf( "Membros.......: %d\n", bandas[ index ].integrantes );	
	}
	for( index = 0; index < 5; ++index )
	{	if ( bandas[ index ].integrantes > bandas[ maior ].integrantes )
		{	maior= index; /* banda de mais integrantes */			
	}	}
	printf( "A banda com mais integrandes e: %s \n\n", bandas[ maior ].nome );
	return 0;
}	

 

  • Obrigado 1
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...