1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Ajuda] Devolver estruturas

Discussão em 'Programação' iniciada por Patrick_maura, 23 de Maio de 2008. (Respostas: 10; Visualizações: 772)

  1. Patrick_maura

    Patrick_maura Power Member

    Olá...Estou a estudar programação e preciso de algumas dicas vossas.

    Peço desculpa pelo primeiro post que faço ser logo a fazer uma pergunta.

    Estou a fazer um simulador de credito à habitação e nos dados que tenho que pedir sobre os proponentes surgiu me algumas duvidas:

    Código:
     struct data{
            int dia;
            int mês;
            int ano
        {;
    
        struct data2{
            int dia; //pode ser variáveis iguais dentro de estruturas diferentes?
            int mês;
            int ano
        {;
        
        struct proponentes{
            int num_prop,
            char nome[35];
            struct data data_nasc;
            struct data data_nasc2;
    
    struct proponentes dados_pessoais(void){
            struct proponentes dadpessoais;;
            int i=1
            printf("\nDados pessoais dos Proponentes:\n")
            do{
                printf("Numero de proponentes (1 ou 2)");
                scanf("%d",&dadpessoais.num_prop);
            }while(dadpessoais.num_prop!=1 && dadpessoais.num_prop!=2);
    
            for(i<=dadpessoais.num_prop)
                printf("Nome do %d.º proponente", i);
                scanf("%d",&dadpessoais.num_prop);
    Tenho que guardar o nome e a data de nascimento dos proponentes, no entanto nao sei como verificar quantos proponentes sao. no maximo sao dois proponentes, se fosse so um pedia os dados e guardava os na estrutura mas assim primeiro tenho que perguntar se sao 1 ou 2 e depois nao sei como fazer para pedir e guardar os dados (nome e data de nascimento).

    Outra questão é: sei que é melhor comecar a perguntar o ano, depois o mes e so depois o dia de nascimento no entanto nao sei como fazer para validar oa dias consoantes os meses do ano.

    Ps: Para devolver uma estrutura faço é return nome_estrutura? se nao é como faco?

    Agradeço a ajuda de alguem..:(
     
    Última edição: 23 de Maio de 2008
  2. 1. Basta usares um ciclo do tipo:
    Código:
    for(int i = 0; i < dadpessoais.num_prop; i++) // Faz coisas.
    2. A melhor maneira é definires uma função que dado um ano e um mês devolve o número de dias desse mês e uma outra função que verifica se o dia introduzido é válido.

    3. Devolves uma estrutura da mesma forma que devolve qualquer outro tipo de dados.
     
  3. Patrick_maura

    Patrick_maura Power Member

    Dentro do ciclo for eu mando guardar primeiro os dados para dentro da estrutura que tem os dados do primeiro proponente e como faço para que quando ele execute novamente o código que esta dentro ciclo for guardar os dados na estrutura do segundo proponente? Isso é possível? ou vou ter que pedir os dados duas vezes?

    Podes explicar melhor como seria a função que dado um ano e um mês devolvia os dias desse mês?
     
  4. Não sei se estou a perceber, mas se os dados são diferentes tens mesmo de os pedir duas vezes.

    Algo do tipo:

    Código:
    int numeroDeDias(int ano, int mes) {
      if(mes == 2 || mes == 4 || mes == 6 || mes == 9 || mes == 11) return 30;
      else if(mes == 2) return bissexto(ano) ? 29 : 28;
     else return 31;
    }
     
  5. Patrick_maura

    Patrick_maura Power Member

    Os dados são exactamente os mesmos, só que tenho que os pedir para duas pessoas diferentes caso sejam 2 proponentes. Mas provavelmente a melhor forma é os pedir separadamente.

    Na função que mandaste como sei quais são os anos bixextos? Tenho que definir antes quais são?
     
  6. Nesse caso acho que é melhor manter esses dados fora da estrutura.

    Na função que mandaste como sei quais são os anos bixextos? Tenho que definir antes quais são?[/quote]
    Sim, tens de definir essa função.
     
  7. Patrick_maura

    Patrick_maura Power Member

    Só mais uma pergunta:

    Posso declarar variáveis iguais dentro de estruturas diferentes?

    Código:
     struct data{
            int dia;
            int mês;
            int ano
        {;
    
        struct data2{
            int dia;
            int mês;
            int ano;
    };
    Tenho duas estruturas no entanto as variaveis sao iguais dentro de cada uma. Isso é possível?
     
  8. Sim, é possível.
     
  9. souto

    souto To fold or to FOLD?

    Porque não isto?

    Código:
    struct struct_data{
            int dia;
            int mês;
            int ano
        };
    
    typedef struct struct_data data; 
    
    E assim podes fazer coisas do tipo

    Código:
    data data1;
    data data2;
    
    etc.
     
    Última edição: 24 de Maio de 2008
  10. Baderous

    Baderous Banido

    Melhor ainda:

    Código:
    typedef struct struct_data {
        int dia;
        int mes;
        int ano;
    } data;
     
  11. Patrick_maura

    Patrick_maura Power Member

    Obrigado pelas ajudas.
     

Partilhar esta Página