Ir ao conteúdo

Posts recomendados

Postado

ME AJUDEM NESSA, NÃO TO CONSEGUINDO FAZER !!Foi realizada uma pesquisa entre 500 habitantes de uma certa região. De cada
habitante foram coletados os dados: idade, sexo, salário e número de filhos. Faça um
programa em C que leia esses dados em uma matriz (uma matriz para cada dado). O
programa deve oferecer as seguintes opções:
 Cadastrar habitante;

Mostrar os dados de todos os habitantes;
 Mostrar os dados do habitante mais velho;
 Mostrar os dados dos habitantes do sexo masculino;
 Mostrar os dados dos habitantes do sexo feminino;
 Mostrar o habitante com maior número de filhos;
 Mostrar os dados dos habitantes de maior e menor salário;
 Mostrar a média de salário da região;
 Mostrar a média de idade dos habitantes da região.
Obs.: utilize o comando switch-case para criar o menu acima.

  • Amei 1
Postado

@Felipe Fernandez    para facilitar  seria melhor você fazer esse código por partes , então comece por fazer a função que cadastra os habitantes , e para isso você precisa criar um vetor ou matriz para guardar os dados pesquisados , e depois você fará uma busca nesse vetor ou matriz para saber as informações pedidas , então para usar vetores você precisa criar um vetor de int para a idade e número de filho e um de float para o salario e um de char para o sexo ,  então faça essa parte inicial e poste seu código para vermos como está e em que podemos ajudar  .

Postado

o codigo ta mais ou menos assim e ainda não ta pronto !

#include<stdio.h>
void main(){
    int op;

    do{
        system("cls");
        printf("Informe uma das opções abaixo:\n");
        printf("1 - Cadastrar habitante\n");
        printf("2 - Mostrar os dados de todos os habitantes\n");
        printf("3 - Mostrar os dados do habitante mais velho\n");
        printf("0 - Sair do programa\n");
        scanf("%i", &op);
        system("cls");

        switch(op){
            case 1:
                printf("Informe os dados dos habitantes...\n");
                system("pause");
            break;
            case 2:
                printf("Aqui vai o codigo para mostrar todos os habitantes\n");
                system("pause");
            break;
            case 3:
                printf("Aqui vai o codigo para mostrar o habitante mais velho\n");
                system("pause");
            break;
            case 0:
                printf("Encerrando...\n");
            break;

            default:
                printf("Opcao invalida! Informe uma das opções do menu\n");
                system("pause");
        }
    }while(op != 0);
}

 

  • Amei 1
  • Haha 1
Postado
3 horas atrás, Felipe Fernandez disse:

mas matrizes eu ainda to aprendendo 

Pois então, vetores são como matrizes de um dimensão (unidimensionais).

 

Vetores são coleções de dados de um só tipo (conjunto) que podem ser acessados diretamente da memória que lhe é reservada sem problemas. Para isso, conta o programador com o identificador que é o nome do vetor. Daí uma típica declaração de vetor é seguida do tipo do objeto, mais o seu nome e por ultimo seu alcance ou do inglês range.

 

tipo-objeto nome-objeto[ alcance ]

 

Acima o forma clássica de se declarar um vetor. Existem outras formas, entretanto, essa é mais didática.

Para acessar um elemento do conjunto operamos com sintaxe muito parecida com a que vimos na declaração, mais desta vez não definimos o tipo e o range. Assim por exemplo:

/* Exemplo de Declaração e Acesso a itens do Vetor                        */
int idades[100];  /* -- Declarei o vetor e reservei 100 ints na memória   */
int minha_idade;  /* -- Declarei uma variável e reservei 1 int na memória */

minha_idade = idades[2]; /* -- Atribui a 3ª idade do conjunto de idades   */

/* [!]
 * Perceba que o índice é 2, contudo, estamos acessando o terceiro elemento
 * As operações de memória funcionam assim; o primeiro elemento do conjunto
 * é zero [0] e o último elemento é o range - 1, nesse exemplo o último ele-
 * mento é [99]. Legal né!                                              *-*/

Entendeu isso, já sabe isso então nos pergunte outra coisa ou demostre o que além já tem feito?

 

ATUALIZADO:

Precisará conhecer também instruções/estruturas de repetição. Uma delas apenas para resolver a questão.

  • Curtir 1
Postado

@Felipe Fernandez     então você precisa usar vetor , é melhor pois senão você precisaria usar muitas variáveis para armazenar os dados cadastrados , e isso seria bem difícil ,  então seu código com a função para cadastrar pode ser assim  :

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
int cont;
void cadastrar(int idade[],int num_filhos[],char sexo[],float salario[]){
    char sair='s';
    if(cont > 499)
        printf("Ja Foram Cadastrados 500 Habitantes");
    else{
        printf("Vamos Cadastrar Alguns Habitantes\n");
        do{
            printf("Digite A Idade Do Habitante ");
            fflush(stdin);
            scanf("%d",&idade[cont]);
            printf("Digite O Sexo Do Habitante    M/F");
            fflush(stdin);
            scanf("%c",&sexo[cont]);
            printf("Digite O Numero De Filhos Do Habitante ");
            fflush(stdin);
            scanf("%d",&num_filhos[cont]);
            printf("Digite O Salario Do Habitante ");
            fflush(stdin);
            scanf("%f",&salario[cont]);
            cont++;
            printf("Quer Cadastrar Mais Um Habitante    S/N ");
            fflush(stdin);
            scanf("%c",&sair);
            system("cls");
        }while(toupper(sair) != 'N');
    }
}
int main(){
    int op,idade[500],num_filhos[500];
    char sexo[500];
    float salario[500];
    do{
        system("cls");
        printf("Informe uma das opções abaixo:\n");
        printf("1 - Cadastrar habitante\n");
        printf("2 - Mostrar os dados de todos os habitantes\n");
        printf("3 - Mostrar os dados do habitante mais velho\n");
        printf("0 - Sair do programa\n");
        scanf("%i", &op);
        system("cls");
        switch(op){
            case 1:
                printf("Informe os dados dos habitantes...\n");
                cadastrar(idade,num_filhos,sexo,salario);
                system("pause");
                break;
            case 2:
                printf("Aqui vai o codigo para mostrar todos os habitantes\n");
                listar(idade,num_filhos,sexo,salario);
                system("pause");
                break;
            case 3:
                printf("Aqui vai o codigo para mostrar o habitante mais velho\n");
                system("pause");
                break;
            case 0:
                printf("Encerrando...\n");
                break;
            default:
                printf("Opcao invalida! Informe uma das opções do menu\n");
                system("pause");
        }
    }while(op != 0);
    return 0;
}

com isso você pode cadastrar quantos habitantes quiser ,  até o máximo de 500 ,    com esse exemplo você pode fazer a função listar para mostrar os dados de todos os habitantes armazenados nos vetores .   então faça e poste aqui para vermos como está .

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!