Ir ao conteúdo

C Exercício simples de Vetores em C


Ir à solução Resolvido por Ansi C,

Posts recomendados

Postado

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
Postado

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
Postado

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
  • Solução
Postado

@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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!