como passar valor de uma variavel para uma matriz?? [RESOLVIDO]

1. como passar valor de uma variavel para uma matriz?? [RESOLVIDO]

Daniel
danielcrvg

(usa Slackware)

Enviado em 25/10/2012 - 00:04h

Galera blz? gostaria de saber como passar o valor de uma variavel para uma matriz...


Ex:


char matriz [3][20] = { "Joao", "Maria", "Jose" };

// Neste caso, estou declarando uma matriz com 3 linhas, com cada linha composta pelos nomes: Joao, Maria e Jose .. sendo que cada linha tem um limite de 20 caracteres, no caso da matriz 20 colunas certo?????


Entao minha duvida seria algo assim:

int num1 = 200;
char nome[10] = "pedro";
int idade = 20;


e ai eu queria colocar estas variaveis dentro de uma matriz:


printf("Digite numero: \n");
scanf("%d\n",&num1);

printf("Digite nome: \n");
gets(nome); //Eu sei que é melhor usar a funcao fgets() para evitar overflow...

printf("Digite idade: \n");
scanf("%d",&idade);

char matrizX [3][20] = {&num1, &nome, &idade};


tem como????

** Neste caso eu declarei a matriz como caracter, pois ela vai receber tanto letra quanto numeros...



  


2. MELHOR RESPOSTA

???
gokernel

(usa Linux Mint)

Enviado em 25/10/2012 - 08:39h

olá !

acredito que seria melhor neste caso utilizar uma matriz de dados(struct).

exemplo:



#define SIZE 10

struct data {
char nome[20]; // ou utilizando ponteiro para alocar dinamicamente ...
int idade;
};

struct data pessoa[SIZE];



3. Re: como passar valor de uma variavel para uma matriz?? [RESOLVIDO]

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 25/10/2012 - 08:07h

Não tem como. Linguagem C é fortemente tipada, não tem como trocar os tipos de variáveis.

A sugestão é utilizar estrutura (ou registro), que aceita variáveis de vários tipos.


4. Re: como passar valor de uma variavel para uma matriz?? [RESOLVIDO]

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 25/10/2012 - 08:16h

danielcrvg escreveu:
printf("Digite numero: \n");
scanf("%d\n",&num1);

printf("Digite idade: \n");
scanf("%d",&idade);


Perceba que você recebe tipos inteiros. Não dá pra clocar int em uma variável char. No máximo colocaria para receber os números como char:

char num1[3], idade[2];

printf("Digite numero: \n");
scanf("%c\n",&num1);

printf("Digite idade: \n");
scanf("%c",&idade);



5. Re: como passar valor de uma variavel para uma matriz?? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/10/2012 - 08:26h

Acho que tem como sim, talvez o rei_astro não tenha lido direito já que ele é fera no c/c++ :-P

Só me explica o que tu quis dizer aqui: char matrizX [3][20] = {&num1, &nome, &idade};


6. Re: como passar valor de uma variavel para uma matriz?? [RESOLVIDO]

Daniel
danielcrvg

(usa Slackware)

Enviado em 25/10/2012 - 09:03h

Eu tenho que fazer um projeto pra faculdade que cadastre os cursos da faculdade, as turmas destes cursos, e tambem cadastre alunos...

Para que exista uma turma cadastrada, primeiro é necessario verificar se existe o curso... E para cadastrar um aluno, deve verificar se exista a turma...

Entao eu primeiro iria cadastrar os cursos da faculdade, depois turma, e depois alunos....

Entao eu pensei em usar arquivos de texto, com as funcoes fopen, fclose, fprintf(para escrever dentro do arquvivo) etc...

Pensei em fazer esse cadastro atraves de uma matriz... E depois era so eu fazer uma funcao para abrir um arquivo de texto, e so mandava imprimir la dentro a minha matriz, pra fica de forma organizada.
Eu acredito que desta maneira, facilitaria ate minha vida na hora de fazer uma funcao que consultasse para saber se determinado dado ja existisse neste arquivo..

Por isso perguntei se havia a possibilidade de uma matriz receber os dados das variaveis, mesmo sendo de tipos diferentes...

Como no futuro eu terei que fazer uma funcao que pesquisasse dentro deste arquivo (acredito eu, que terei de usar ponteiros), eu pensei em fazer o cadastro atraves de matriz ou 1 unico vetor com todos os dados na mesma linha dele..


Este foi meu raciocinio, vejam se é possivel fazer desta forma, e se caso saibam de uma forma mais facil, por favor me deem a opiniao de vcs..

Vou pesquisar a respeito desta struct....

Obrigado,





7. Re: como passar valor de uma variavel para uma matriz?? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/10/2012 - 09:52h

Realmente no teu primeiro post, nada fez sentido, mas seria mais ou menos assim:


Declare um ponteiro do tipo void e outro do tipo ponteiro para ponteiros tbm void, construa uma matriz com sizeof, indicando que o primeiro item precisa ser um int e o segundo é um sizeof de uma struct ou um referência a uma lista linkada por exemplo.


8. Re: como passar valor de uma variavel para uma matriz?? [RESOLVIDO]

Daniel
danielcrvg

(usa Slackware)

Enviado em 25/10/2012 - 10:02h

tranquilao... eu to vendo aqui sobre as structs.. acho que vao resolver meu problema...


obrigado..


9. Re: como passar valor de uma variavel para uma matriz?? [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 25/10/2012 - 10:44h

bom, agora já sabemos mais do que vc precisa, entao veja sobre:

01 - lista encadeada simples(não dupla) para armazenar o seu "banco de dados" : google (c linked list).
02 - malloc e strdup: para alocação dinâmica ...

E como manda a ética, vc será auxiliado conforme evolua o seu aprendizado ...

E se for postar o seu código C para obter ajuda ... dica: http://codepad.org e anviar o link.

Abraço !







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts