Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Briooosa

codigo de programa...

Recommended Posts

boas,precisava de ajuda pra um programa que estou a tentar fazer:

 

fazer uma estrutura tbi que armazene informaçao sobre bilhetes de identidade:

 

preciso de implememtar uma funçao que receba como parametros uma tabela com 5 elementos do tipo tbi(previamente preenchida) e o numero de elementos da tabela.a funcao devera imprimir o nome e o numero de identificaçao do elemento mais novo;

 

fiz isto:

mas só me imprime a data do mais novo,nao consigo imprimir o nome e o numero de identificaçao do mesmo.

 

#include<iostream.h>

#include<iomanip.h>

 

 

struct tbi{

 

char nome[50];

int datanasc[3];

unsigned int numident;

};

 

 

void inseretab(tbi t[],int n);

void maior(tbi valores[],int n,int res[3]);

 

 

void main(){

 

tbi tabela[5];

 

inseretab(tabela,5);

 

int data[3];

maior(tabela,5,data);

 

cout << data[0] << "/" << data[1] << "/" << data[2] << endl;

}

 

void inseretab(tbi t[],int n){

 

 

int i;

cout<<"insira os dados de :"<<n<<" elementos"<<endl;

 

 

 

 

for (i = 0; i < n; i++) {

 

cout << "introduza o nome :";

cin.getline(t.nome, 50);

cout << "introduza data de nascimento" << endl;

cout << "ano ";

cin >> t.datanasc[0];

cout << "mes";

cin >> t.datanasc[1];

cout << "dia";

cin >> t.datanasc[2];

cout << "introduza o numero de indentificacao";

cin >> t.numident;

cin.get();

cout << endl;

}

}

 

void maior(tbi tabela[],int n,int res[3])

{

 

int ano_maximo = 0, mes_maximo = 0, dia_maximo = 0,i=0;

tbi mais_novo;

 

for (i=0;i<n;i++) {

 

if (tabela.datanasc[0] == ano_maximo) {

if (tabela.datanasc[1] == mes_maximo) {

if (tabela.datanasc[2] >= dia_maximo) {

mais_novo = tabela;

ano_maximo = tabela.datanasc[0];

mes_maximo = tabela.datanasc[1];

dia_maximo = tabela.datanasc[2];

}

} else if (tabela.datanasc[1] > mes_maximo) {

mais_novo = tabela;

ano_maximo = tabela.datanasc[0];

mes_maximo = tabela.datanasc[1];

dia_maximo = tabela.datanasc[2];

}

} else if (tabela.datanasc[0] > ano_maximo) {

mais_novo = tabela;

ano_maximo = tabela.datanasc[0];

mes_maximo = tabela.datanasc[1];

dia_maximo = tabela.datanasc[2];

}

}

res[0]=dia_maximo;

res[1]=mes_maximo;

res[2]=ano_maximo;

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma idéia é fazer com que a funcão maior te retorne o índice do registro que possui a menor idade, com o número de registro na main é só colocar o cout para imprimir o registro que voce quer

 

int maior(tbi tabela[],int n,int res[3]){   int ano_maximo = 0, mes_maximo = 0, dia_maximo = 0,i=0, ma;   tbi mais_novo;   for (i=0;i<n;i++) {	  if (tabela[i].datanasc[0] == ano_maximo) {		 if (tabela[i].datanasc[1] == mes_maximo) {			if (tabela[i].datanasc[2] >= dia_maximo) {			   mais_novo = tabela[i];			   ano_maximo = tabela[i].datanasc[0];			   mes_maximo = tabela[i].datanasc[1];			   dia_maximo = tabela[i].datanasc[2];			   ma=i;			}		 } else if (tabela[i].datanasc[1] > mes_maximo) {			mais_novo = tabela[i];			ano_maximo = tabela[i].datanasc[0];			mes_maximo = tabela[i].datanasc[1];			dia_maximo = tabela[i].datanasc[2];			ma=i;		 }	  } else if (tabela[i].datanasc[0] > ano_maximo) {		 mais_novo = tabela[i];		 ano_maximo = tabela[i].datanasc[0];		 mes_maximo = tabela[i].datanasc[1];		 dia_maximo = tabela[i].datanasc[2];		 ma=i;	  }   }   res[0]=dia_maximo;   res[1]=mes_maximo;   res[2]=ano_maximo;   return ma;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.