removido
(usa Nenhuma)
Enviado em 12/06/2014 - 22:35h
Boa noite. Seja bem-vinda a comunidade
Primeiramente uma dica: Quando for postar seus códigos aqui coloque entre as tags [ code] [/ code], sem o espaço antes do "c".
Aqui mesmo tem uma dica a respeito do uso da função rand:
http://www.vivaolinux.com.br/dica/Gerando-numeros-aleatorios-em-C
Dê uma lida e procure entender como usar a função, para posteriormente aplicá-la ao seu programa.
O seu código-fonte contém alguns erros de sintaxe e de lógica:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <time.h>
int x, y;
char vetor(void)
{
char vetorletra[6] = {'G', 'B', 'F', 'M', 'Z'};
int mat[9][9];
char n;
srand(time(NULL));
for (x=1; x<='M'; x++)
{
for (y=1; y<='Z'; y++)
{
n = (vetorletra) (rand() % 10);
mat[x][y]= n;
printf("[%c] ", mat[x][y]);
}
getch();
}
return 0;
}
Em primeiro lugar, seu programa não tem a função principal main().No lugar de char vetor(void), deveria ser int main().
Em segundo lugar, você declarou o vetor "vetorletra" com capacidade para 6 elementos e só usou cinco(Não é errado, mas está gastando memória a toa).
Em terceiro lugar, você disse que quer uma matriz que armazene caracteres, então a matriz tem que ser do tipo char. Você declarou como int, não dá erro, porém o ideal é usar como char.
Em quarto lugar, você está fazendo as comparações nos laços com caracteres. Isso não trará o resultado esperado. Você quer "encher" a matriz certo? Então quantas repetições você acha que tem que ser feitas? Pense na matriz como se fosse uma tabela, o primeiro laço(controlado pelo x) representam as linhas da tabela, o segundo laço(controlado pelo y,e interno ao x) representam as colunas. E inicialize essas variáveis no laço for com 0, ambas, porque em linguagem C os índices dos vetores e matrizes começam no 0. Por exemplo, o índice do primeiro elemento do vetor "vetorletra[6]" é "vetorletra[0]", cujo valor é o primeiro elemento do vetor, no caso é 'G'.
Em quinto lugar, procure separar as coisas, primeiro preencha a matriz, e depois que estiver completamente preenchida escreva os valores na tela.
A atribuição que você fez na linha 19 é inválida
n = (vetorletra) (rand() % 10));
Dê uma olhada a respeito de vetores, para ver como passar um elemento de um vetor para uma variável.
Bons estudos!