[Ajuda] Devolver estruturas

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

Não sei se estou a perceber, mas se os dados são diferentes tens mesmo de os pedir duas vezes.

Podes explicar melhor como seria a função que dado um ano e um mês devolvia os dias desse mês?

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;
}
 
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?
 
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.
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.
 
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?
 
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?

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:
Back
Topo