rDomingues
Power Member
Bom dia.
Ora bem, tenho um TPC de programação que consiste em escrever um programa para armazenar 2 tabelas de dados introduzidos pelo utilizador (nome [com um maximo de 60 caracteres] e ano de nascimento), utilizando duas funções, uma para a elaboração das tabelas e outra para a sua visualização.
Ora, eu escrevi o codigo abaixo, mas não sei bem como declarar as tabelas na função, pelo que gostava que alguem mais entendido me explicasse como o fazer...
Se não estou em erro, para declarar uma tabela multidimensional, necessito de definir o que esta acima a bold, mas no local do 61 queria utilizar uma variavel "MAX_NOME", mas não sei como a declarar.
Utilizando o codigo acima, ao compilar tenho erros ao utilizar a função, na linha:
Provavelmente porque estou a fazer para ali uma salganhada.
Enfim, fica o codigo, se alguma alma caridosa me quiser ajudar, fico agradecido.
Ora bem, tenho um TPC de programação que consiste em escrever um programa para armazenar 2 tabelas de dados introduzidos pelo utilizador (nome [com um maximo de 60 caracteres] e ano de nascimento), utilizando duas funções, uma para a elaboração das tabelas e outra para a sua visualização.
Ora, eu escrevi o codigo abaixo, mas não sei bem como declarar as tabelas na função, pelo que gostava que alguem mais entendido me explicasse como o fazer...
int ledados (char tnome[][61], int lnome, unsigned int tdata[], int ldata, int MAX_PESSOAS)
Se não estou em erro, para declarar uma tabela multidimensional, necessito de definir o que esta acima a bold, mas no local do 61 queria utilizar uma variavel "MAX_NOME", mas não sei como a declarar.
Utilizando o codigo acima, ao compilar tenho erros ao utilizar a função, na linha:
cannot convert `char (*)[((unsigned int)((int)MAX_NOME))]' to `char (*)[61]' for argument `1' to `int ledados(char (*)[61], int, unsigned int*, int, int)'mostra(nomes, MAX_PESSOAS, datas, MAX_PESSOAS, ledados(nomes, MAX_PESSOAS, datas, MAX_PESSOAS, MAX_PESSOAS));
Provavelmente porque estou a fazer para ali uma salganhada.
Enfim, fica o codigo, se alguma alma caridosa me quiser ajudar, fico agradecido.
#include <iostream>#include <cstring>
using namespace std;
int ledados (char tnome[][61], int lnome, unsigned int tdata[], int ldata, int MAX_PESSOAS)
{
int n;
cout << "Indique o numero de dados a introduzir, entre 1 e " << MAX_PESSOAS << " (inclusive): ";
cin >> n;
while (n<1 || n>MAX_PESSOAS)
{
cout << "Introduza um numero entre 1 e " << MAX_PESSOAS << ", inclusive: ";
cin >> n;
}
for (int i=0; i<n; i++)
{
cout << "Introduza o nome:\n";
cin.getline(tnome, sizeof(tnome));
cin.ignore();
cout << "Introduza o ano de nascimento:\n";
cin >> tdata;
cout << endl;
}
return n;
}
void mostra (char tnome[][61], int lnome, unsigned int tdata[], int ldata, int nsaidas)
{
for (int i=0; i<nsaidas; i++)
cout << tnome << " " << tdata << endl;
}
int main()
{
int MAX_NOME = 61;
int MAX_PESSOAS = 30;
char nomes[MAX_PESSOAS][MAX_NOME];
unsigned int datas[MAX_PESSOAS];
mostra(nomes, MAX_PESSOAS, datas, MAX_PESSOAS, ledados(nomes, MAX_PESSOAS, datas, MAX_PESSOAS, MAX_PESSOAS));
return 0;
}
}