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

c++ ajuda

Discussão em 'Programação' iniciada por Briooosa, 14 de Dezembro de 2006. (Respostas: 4; Visualizações: 634)

  1. boas,estou a tentar fazer um programa em c++ pra tpc,e nao consigo fazer o que se pede:
    tenho que fazer 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 funçao deve imprimir o nome e o numero de identificaçao do elemento mais novo.
    dado no enunciado:
    struct tbi{

    char nome[50];
    int datanasc[3];
    unsigned int numident;

    };
    ----------------------
    eu fiz

    #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[i].datanasc[1];
    dia_maximo = tabela[i].datanasc[2];
    }
    }
    res[0]=dia_maximo;
    res[1]=mes_maximo;
    res[2]=ano_maximo;

    }
    mas isto só devolve adata do mais novo,nao consigo a partir daqui imprimir o nome e o numero de identificaçao.podem ajudar-me?
    acho que o codigo nao esta bem estruturado para o que é pedido,mas foi o que consegui fazer,nao percebo muito de ponteiros...
    obrigado[/i][/i]
     
  2. acho que o codigo devia começar por isto:

    #include <iostream.h>
    #include <iomanip.h>
    #include <fstream.h>


    struct tbi{

    char nome[50];
    int datanasc[3];
    unsigned int numident;

    };

    void main(){


    int i;
    tbi tab[5];

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

    cout<<"introduza o nome"<<endl;
    cin>>tabela.nome;
    cout<<"data de nascimento"<<endl;
    cout<<"ano"<<endl;
    cin>>tab.datanasc[0];
    cout<<"mes"<<endl;
    cin>>tab.datanasc[1];
    cout<<"dia"<<endl;
    cin>>tab.datanasc[2];

    }
    insertab(tab,5);
    }
    void inseretab(tbi t[],int n){
    //mas aqui como comparo os anos pra dar o nome e o numero do mais novo?

    ajudem sff
    obg.
     
  3. JuSt_Me_AnD_yOu

    JuSt_Me_AnD_yOu What is folding?

    TPC de PC de electro LOl
    Acha so o indice do mais novo e imprime esse indice
     
  4. es de elevtro?
    ja fiz o programa,obrigado,ja esta entregue,e a cadeira ja esta feita.
    menos uma pros exames.
     
  5. JuSt_Me_AnD_yOu

    JuSt_Me_AnD_yOu What is folding?

    Sou sim. Ja tenho isso feito mas estou dentro das coisas porque ajudo a minha namorada que esta fazer essa cadeira.
     

Partilhar esta Página