Ir para conteúdo
Fórum Script Brasil

brunnorodrigues

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Tudo que brunnorodrigues postou

  1. 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; }
  2. 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; }
  3. 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; }
  4. Muito obrigado, rickayron, sem dúvidas sua colaboração me ajudou bastante.
  5. 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; }
×
×
  • Criar Novo...