-
Total de itens
5 -
Registro em
-
Última visita
Sobre brunnorodrigues
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
brunnorodrigues's Achievements
0
Reputação
-
brunnorodrigues alterou sua foto pessoal
-
Pessoal, meu desafio é esse: Dado um vetor, imprimir maior, menor, mediana e moda. Creio que isso estou conseguindo fazer corretamente (talvez algum errinho aqui outro ali), mas entendi a lógica de como resolver esses problemas. O que não estou conseguindo é fazer com que a inserção de elementos no vetor seja encerrada quando digito -1, que é o que o professor quer. Como podem observar, da forma como está, o primeiro valor que insiro, sinaliza o tamanho do vetor. E não é dessa forma que ele quer. Como então fazer como ele quer? Desde já obrigado, e abaixo, o código. #include<stdio.h> #include<stdlib.h> int main(){ int *vetor,tamanho,i,j,menor,maior,mediana,contador1=0,contador2=-1,moda; scanf("%i",&tamanho); vetor=(int*)calloc(tamanho,sizeof(int)); for(i=0;i<tamanho;i++) scanf("%i",&vetor[i]); maior=vetor[0]; menor=vetor[0]; for(i=0;i<tamanho;i++){ if(vetor[i]<menor) menor=vetor[i]; if(vetor[i]>maior) maior=vetor[i]; } mediana=vetor[tamanho/2]; for(i=0;i<tamanho-1;i++){ for(j=i+1;j<tamanho;j++){ if(vetor[i]==vetor[j]) contador1++; if(contador1>contador2) moda=vetor[i]; contador2=contador1; contador1=0; } } printf("%i %i %i %i",menor,maior,mediana,moda); return 0; }
-
Já ando bem bugado com esses exercícios, viu? (rsrs) Este é o número 5 de uma lista de strings que tenho que apresentar na faculdade. Não consigo sair dos erros que ele está apontando. No meu entendimento, funcionaria assim. Alguém poderia dar uma olhada e me apontar o que errei, por favor? Desde já, obrigado. /* 5) Foi realizada uma pesquisa de algumas características físicas da população de uma certa região, a qual coletaram os seguintes dados referentes a cada habitante para serem analisados: - sexo (masculino e feminino) - cor dos olhos (azuis, verdes ou castanhos) - cor dos cabelos (louros, castanhos, pretos) - idade Faça um algoritmo que determine e escreva: a) a maior idade dos habitantes; b) a quantidade de indivíduos do sexo feminino cuja idade está entre 18 e 35 anos, inclusive; c) a quantidade de indivíduos que tenham olhos verdes e cabelos louros; O final do conjunto de habitantes é reconhecido pelo valor -1 informado como idade. */ #include<stdio.h> #include<stdlib.h> #include<string.h> #include<locale.h> int habitantes=0,contador=1,idade,maioridade=0,mulheresentre18e35,olhosverdesecabeloslouros; char sexo[10],corolhos[10],corcabelos[10]; void cadastra(){ for(habitantes=0;habitantes<contador;habitantes++){ printf("Cadastrando o %iº habitante:\n",habitantes+1,contador=contador+1); printf("Idade (digite -1 para parar os cadastros): "); scanf("%i",&idade); if(idade<0){ system("cls"); break; } printf("Sexo (masculino ou feminino): "); fflush(stdin);fgets(sexo,10,stdin); printf("Cor dos olhos (azuis, verdes ou castanhos): "); fflush(stdin);fgets(corolhos,10,stdin); printf("Cor dos cabelos (louros, castanhos, pretos): "); fflush(stdin);fgets(corcabelos,10,stdin); system("cls"); } } void processa(){ for(habitantes=0;habitantes<contador;habitantes++){ if(idade>maioridade){ maioridade=idade; } if(sexo[habitantes]=='mulher'||idade>=18||idade<=35){ mulheresentre18e35=strlen(habitantes); mulheresentre18e35=mulheresentre18e35+1; } if(corolhos[habitantes]=='verdes'||corcabelos[habitantes]=='louros'){ olhosverdesecabeloslouros=strlen(habitantes); olhosverdesecabeloslouros=olhosverdesecabeloslouros+1; } } } void exibe(){ printf("Relatório de dados dos habitantes desta região:\n"); for(habitantes=0;habitantes<contador;habitantes++){ printf("%i é a maior idade entre eles;\n",maioridade); printf("%i pessoas são mulheres, com idade entre 18 e 35 anos; e\n",mulheresentre18e35); printf("%i indivíduos tem olhos verdes e cabelos louros.",olhosverdesecabeloslouros); } } main(){ setlocale(LC_ALL,"Portuguese"); cadastra(); processa(); exibe(); return 0; }
-
Já ando bem bugado com esses exercícios, viu? (rsrs) Este é o número 5 de uma lista de strings que tenho que apresentar na faculdade. Não consigo sair dos erros que ele está apontando. No meu entendimento, funcionaria assim. Alguém poderia dar uma olhada e me apontar o que errei, por favor? Desde já, obrigado. /* 5) Foi realizada uma pesquisa de algumas características físicas da população de uma certa região, a qual coletaram os seguintes dados referentes a cada habitante para serem analisados: - sexo (masculino e feminino) - cor dos olhos (azuis, verdes ou castanhos) - cor dos cabelos (louros, castanhos, pretos) - idade Faça um algoritmo que determine e escreva: a) a maior idade dos habitantes; b) a quantidade de indivíduos do sexo feminino cuja idade está entre 18 e 35 anos, inclusive; c) a quantidade de indivíduos que tenham olhos verdes e cabelos louros; O final do conjunto de habitantes é reconhecido pelo valor -1 informado como idade. */ #include<stdio.h> #include<stdio.h> #include<stdlib.h> #include<string.h> #include<locale.h> int habitantes=0,contador=1,idade,maioridade=0,mulheresentre18e35,olhosverdesecabeloslouros; char sexo[10],corolhos[10],corcabelos[10]; void cadastra(){ for(habitantes=0;habitantes<contador;habitantes++){ printf("Cadastrando o %iº habitante:\n",habitantes+1,contador=contador+1); printf("Idade (digite -1 para parar os cadastros): "); scanf("%i",&idade); if(idade<0){ system("cls"); break; } printf("Sexo (masculino ou feminino): "); fflush(stdin);fgets(sexo,10,stdin); printf("Cor dos olhos (azuis, verdes ou castanhos): "); fflush(stdin);fgets(corolhos,10,stdin); printf("Cor dos cabelos (louros, castanhos, pretos): "); fflush(stdin);fgets(corcabelos,10,stdin); system("cls"); } } void processa(){ for(habitantes=0;habitantes<contador;habitantes++){ if(idade>maioridade){ maioridade=idade; } if(sexo[habitantes]=='mulher'||idade>=18||idade<=35){ mulheresentre18e35=strlen(habitantes); mulheresentre18e35=mulheresentre18e35+1; } if(corolhos[habitantes]=='verdes'||corcabelos[habitantes]=='louros'){ olhosverdesecabeloslouros=strlen(habitantes); olhosverdesecabeloslouros=olhosverdesecabeloslouros+1; } } } void exibe(){ printf("Relatório de dados dos habitantes desta região:\n"); for(habitantes=0;habitantes<contador;habitantes++){ printf("%i é a maior idade entre eles;\n",maioridade); printf("%i pessoas são mulheres, com idade entre 18 e 35 anos; e\n",mulheresentre18e35); printf("%i indivíduos tem olhos verdes e cabelos louros.",olhosverdesecabeloslouros); } } main(){ setlocale(LC_ALL,"Portuguese"); cadastra(); processa(); exibe(); return 0; }
-
matrizes Matrizes Heterogêneas: printf no grupo de pessoas com altura desejada
pergunta respondeu ao brunnorodrigues de brunnorodrigues em C, C++
Muito obrigado, rickayron, sem dúvidas sua colaboração me ajudou bastante. -
Estou há dias preso nesse exercício da lista de Matrizes Heterogêneas, acredito que por um detalhe, que não encontro solução. É o seguinte: o que não funciona bem é as opções de mostrar o grupo de pessoas com determinada altura (opções 2, 3 e 4 do menu). Eu cadastro todos corretamente, mas na hora de exibir só quem tem 1,5m ou menos, ele exibe todos os cadastrados, e assim acontece com quem tem 1,5m e com quem tem entre 1,5m e menos de 2m. Ao invés de filtrar a opção solicitada, ele me mostra tudo que cadastrei, entendeu? Segue abaixo código: /* 4. Elaborar um programa que armazene o nome e a altura de 15 pessoas com o uso de registros. O programa deve usar um menu que execute as seguintes etapas: a) Cadastrar os 15 registros. b) Apresentar os registros (nome e altura) das pessoas com 1.5m ou menores. c) Apresentar os registros (nome e altura) das pessoas com mais de 1.5m. d) Apresentar os registros (nome e altura) das pessoas com mais de 1.5m e menos de 2.0m. e) Apresentar todos os registros com a média extraída de todas as alturas armazenadas. f) Sair do programa de cadastro. */ #include<stdio.h> #include<stdlib.h> #include<string.h> #include<locale.h> int opcao,encontrou=0; typedef struct cadastro{ char nome[41]; float altura,media; }Cadastro; Cadastro cad[15]; int j=0; float alturas=0; void menu(){ fflush(stdin); printf("Opções:\n"); printf("1 - cadastrar as pessoas e suas alturas\n"); printf("2 - relação das pessoas com 1,5m ou menores\n"); printf("3 - relação das pessoas com 1,5m\n"); printf("4 - relação das pessoas com mais de 1,5m e menos de 2m\n"); printf("5 - exibir relação completa de todos os cadastrados\n"); printf("6 - sair\n"); } void cadastros(){ for(j=0;j<3;j++){ printf("Cadastro da %iª pessoa:\n",j+1); printf("Nome: "); fflush(stdin);fgets(cad[j].nome,41,stdin); printf("Altura: "); scanf("%f",&cad[j].altura); alturas=alturas+cad[j].altura; printf("\n"); system("cls"); } } void listaalturasmenos15(){ if(cad[j].altura<=1,5){ printf("Lista com a relação das pessoas com 1,5m ou menores:\n\n"); for(j=0;j<3;j++){ if(cad[j].altura!='\0'){ encontrou=1; printf("Registro %i:\n",j+1); printf("Nome: %s",cad[j].nome); printf("Altura: %.2f\n\n",cad[j].altura); } } if(!encontrou){ printf("Não há, cadastradas nesta lista, pessoas com 1,5m ou menores!\n\n"); } } } void listaalturascom15(){ if(cad[j].altura=1,5){ printf("Lista com a relação das pessoas com 1,5m:\n\n"); for(j=0;j<3;j++){ if(cad[j].altura!='\0'){ encontrou=1; printf("Registro %i:\n",j+1); printf("Nome: %s",cad[j].nome); printf("Altura: %.2f\n\n",cad[j].altura); } } if(!encontrou){ printf("Não há, cadastradas nesta lista, pessoas com 1,5m!\n\n"); } } } void listaalturasmais15(){ if(2<=cad[j].altura>1,5){ printf("Lista com a relação das pessoas com mais de 1,5m e menos de 2m:\n\n"); for(j=0;j<3;j++){ if(cad[j].altura!='\0'){ encontrou=1; printf("Registro %i:\n",j+1); printf("Nome: %s",cad[j].nome); printf("Altura: %.2f\n\n",cad[j].altura); } } if(!encontrou){ printf("Não há, cadastradas nesta lista, pessoas com mais de 1,5m e menos de 2m!\n\n"); } } } void exibe(){ printf("Lista com a relação completa de todos os cadastrados e média das alturas:\n"); for(j=0;j<3;j++){ if(cad[j].nome[0]!='\0'){ encontrou=1; printf("Registro %i:\n",j+1); printf("Nome: %s",cad[j].nome); printf("Altura: %.2f\n\n",cad[j].altura); } } cad[j].media=alturas/3; printf("Média: %.2f\n\n",cad[j].media); if(!encontrou){ printf("Nada foi cadastrado ainda. Utilize a opção 1 do Menu e cadastre!\n\n"); } } main(){ setlocale(LC_ALL,"Portuguese"); while(opcao!=6){ menu(); printf("Escolha a opcão: "); scanf("%i",&opcao); system("cls"); switch(opcao){ case 1:cadastros(); break; case 2:listaalturasmenos15(); break; case 3:listaalturascom15(); break; case 4:listaalturasmais15(); break; case 5:exibe(); break; case 6:exit(0); break; default: printf("A opção é inválida. Informe corretamente.\n\n"); break; } } cadastros(); listaalturasmenos15(); listaalturascom15(); listaalturasmais15(); exibe(); return 0; }