Ir ao conteúdo
  • Cadastre-se

Resolvendo exercicio de struct


Ronimar

Posts recomendados

Pessoal tenho que resolver o seguinte exercício que segue em anexo , mais ao fazer a busca na struct não consigo comparar os resultados.Resolver a letra B que precisa buscar pelo SEXO

#include <stdio.h>#include <stdlib.h>struct endereco {       char rua[100];       int numero;       char bairro[50];       char cidade[50];       char estado[2];       int cep[9];      };struct data {       int dia;       int mes;       int ano;       };struct aluno{              char nome[10];       char endereco[10];       float salario;       int rg;       int cpf[15];       char estadoCivil[9];       int telefone;       char sexo[15];         };//CRIANDO ALUNOS struct aluno a1[3];struct aluno a2[3];//CRIANDO ENDEREÇOstruct endereco end[3];//CRIANDO datastruct data datanascimento[3];int main(){  int opcao=1,i,opcaopesquisa;   char nome,opcaosexo;     while(opcao=1)  {                       printf("***********ESCOLHA A OPÇÃO************ \n");                   printf("\n");                   printf("\n");                   printf("\n");                   printf("\n");                   printf("1----VETOR ALUNOS \n");                   printf("2----LISTAGEM DE ALUNOS DE ACORDO COM O SEXO \n");          printf("Entre com a opção desejada ");     scanf("%d",&opcao);     system("CLS");      if (opcao==1)  {        for(i = 0; i < 1; i++)    {         	printf("Nome Aluno \n");     	fflush(stdin);     	scanf("%s",&a1[i].nome);     	     	printf("Informe o sexo \n");    	fflush(stdin);    	scanf("%s", &a1[i].sexo);        	printf("Informe O CPF \n");    	fflush(stdin);    	scanf("%d", &a1[i].cpf);                      	printf("Informe A Rua \n");    	fflush(stdin);    	scanf("%s", &end[i].rua);         	printf("Informe o bairro \n");    	fflush(stdin);    	scanf("%s", &end[i].bairro);        	printf("Informe o estado \n");    	fflush(stdin);    	scanf("%s", &end[i].estado);        	printf("Informe o numero \n");    	fflush(stdin);    	scanf("%d", &end[i].numero);        	printf("Informe a cidade \n");    	fflush(stdin);    	scanf("%s", &end[i].cidade);        	printf("Informe o cep a cidade \n");    	fflush(stdin);    	scanf("%d", &end[i].cep);       	 	printf("Informe o salario \n ");    	fflush(stdin);    	scanf("%f", &a1[i].salario);                           	printf("Informe o rg \n ");    	fflush(stdin);    	scanf("%d", &a1[i].rg);           	printf("Informe o estado civil \n ");    	fflush(stdin);    	scanf("%s", &a1[i].estadoCivil);          	printf("Informe o telefone \n ");    	fflush(stdin);    	scanf("%d", &a1[i].telefone);        	printf("Informe o dia  \n ");    	fflush(stdin);    	scanf("%d", &datanascimento[i].dia);        	printf("Informe o mes  \n ");    	fflush(stdin);    	scanf("%d", &datanascimento[i].mes);        	printf("Informe o ano  \n ");    	fflush(stdin);    	scanf("%d", &datanascimento[i].ano);    	fflush(stdin);           }//FIM DO FOR QUE PREECNHE A STRUCT DE ALUNOS NO MAXIMO 30        printf("\nExibindo nomes \n");    for(i = 0 ; i < 1 ; i++)    {        printf("\nAluno %d\n", i+1);        printf("Nome: %s \n",a1[i].nome);        printf("endereço Rua: %s \n", end[i].rua);        printf("endereço Bairro: %s \n", end[i].bairro);        printf("endereço Estado: %s \n", end[i].estado);        printf("Salario %f \n", a1[i].salario);        printf("RG: %d \n", a1[i].rg);        printf("CPF: %d \n", a1[i].cpf);        printf("ESTADO CIVIL: %s \n", a1[i].estadoCivil);        printf(" TELEFONE: %d \n", a1[i].telefone);        printf("DIA NASCIMENTO: %d \n", datanascimento[i].dia);        printf("MES NASCIMENTO: %d \n", datanascimento[i].mes);        printf("ANO: %d \n", datanascimento[i].ano);        printf("SEXO: %s \n", a1[i].sexo);    }         printf("Entre com a opção desejada ");     scanf("%d",&opcao);     system("CLS"); };//FIM DO 1 SE        if(opcao==2)        {                 printf("LISTANDO A OPÇÃO DE ACORDO COM O SEXO \n");                 printf("\n");                 printf("\n");                 printf("\n");                 printf("\n");                                  printf("Digite a letra desejada --M , --F \n");                 scanf("%s",&opcaosexo);								for(i = 0 ; i < 1 ; i++)				 	{				 					 			if (strcmp (opcaosexo, a1[i].sexo) == 0)				 				{				 													 printf("Entrou");								 								 								 }				 						 						 	}//FIM DO FOR				 					 					 	                                  system("PAUSE");                                  };        };       return 0;}

post-729888-0-68704900-1424659441_thumb.

Link para o comentário
Compartilhar em outros sites

[emoji2] Ola!
Tem uma coisa que não entendi...

Há struct em que sexo tem 15bytes[emoji13]
No entanto no momento em que se realiza a busca por sexo, como e feita entrada de dados [emoji26] , quais são as regras nesta situação e durante o cadastramento?
 
PS.: O ideal é sexo ter apenas 1byte; Como segue no quadro o necessário é 'M' ou 'F'!


[emoji6] '!'
 
Código

//program C - Simple Code <Club do Hardware>#include<stdio.h>#define CLEN 3//Struct Typestruct Aluno{   char name[31];   char sexo;};//Function Prototype Declarationvoid Aluno_print( struct Aluno );int main( void ){   struct Aluno class_especial[CLEN] =   {      "Aluno 1",'M',      "Aluno 2",'M',      "Aluna 3",'F'   };   printf( "ALUNOS\n-------\n" );   int i = 0;   while( i < CLEN )   {      if( class_especial[ i ].sexo == 'M'  )         Aluno_print( class_especial[i] );    i++;   }return ( 0x0 );}//Function Prototype Definitionvoid Aluno_print( struct Aluno aluno ){   printf( "%s%-31s%s%c\n",          "NOME: ",aluno.name, "SEXO: ",aluno.sexo );return;}

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