Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom peço a a ajuda dos senhores com um código que estou tendo dificuldade
o programa você pede para pessoa quantos nomes você vai jogar na matriz
voce vai digitar o nome e o local onde você quer que comece o nome
depois ele limpa a tela e exibe a matriz com caracteres aleatórios
eu preciso digitar uma palavra e se a palavra estiver na matriz ele mostra a palavra na tela
se alguem pudesse me mostrar como posso trabalha com a matriz do fonte usando ponteiro sobre ponteiro agradeceria muito
segue o código
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdlib.h>
#define num 6
//Definindo as funções a serem usadas
int receber(char *pvet);
void mostrar(char *pvet, char *pletra);
void zeramatriz(char *pmat, char *pletra);
void procura(char *pletra,char *pvet,char *pmat);
int conclusao(char *pvet,char *pmat);
//variavel global
int erro=0;
int main(int argc, char *argv[])
{
int i , j = 0, tentativas = num + 5 , chance = 0 , ident;
char matriz[num][num], vet[num][num], letra[15];
zeramatriz(matriz, letra);
i = receber(vet);
if(i!=0)
{
zeramatriz(matriz,letra);
mostrar(matriz,letra);
}
do
{
printf("você possui %i tentativas\n\n",tentativas);
printf("você errou %i vezes\n\n",erro);
procura(letra,vet,matriz);
mostrar(matriz,letra);
tentativas--;
/* if (tentativas<1)
{
return 0;
getch();
}*/
chance++;
j++;
ident=conclusao(vet,matriz);
printf("\n\n%i\n\n",ident);
if(ident==1)
{
system("cls");
chance=num*num+6;
printf("Parabens você achou as palavras!!!\n\n");
mostrar(matriz,letra);
}
}while(chance<=num*num+5);
getch("Pressione 'espaco' para finalizar o programa");
}
void zeramatriz(char pmat, char pletra)
{
int i;
for(i=0;i<15;i++)
*(pletra+i)=rand();
*(pletra+14)='\0';
for(i=0;i<num*num;i++)
*(pmat+i)=rand();
} int i,l,c,tam,a,qtd;
char palavra[num+1],*ppalavra,*t;
ppalavra=palavra;
a=0;
printf("\t\t\t>>>>>> Programa de Caca Palavras <<<<<<\n\n");
printf("Digite um numero de (1) ate (%i),\n caso digite '0' o programa encerrara\n\n",num);
printf("Digite o numero de palavras que deseja esconder: ");
scanf("%i",&qtd);
while(qtd>10)
{
printf("Quantidade não valida");
printf("Digite o numero de palavras que deseja esconder: ");
scanf("%i",&qtd);
}
if(qtd>0 && qtd<=num)
{
do
{
fflush(stdin);
printf("Digite a palavra a ser escondia\n");
fgets(ppalavra,num+2,stdin);
ppalavra[strlen(ppalavra)-1]='\0';
tam=strlen(ppalavra);
ppalavra[strlen(ppalavra)]='*';
do //coordenadas da matriz a ser amarmazenado
{
printf("digite a linha em que deseja armazenar: ");
scanf("%i",&l);
printf("\ndigite a coluna em que deseja armazenar: ");
scanf("%i",&c);
//verifica se as coordenadas estão certas
if((c+tam)>num || l>num)
printf("\n\n !!! As coordenadas não são validas !!!\n\n");
} while((c+tam)>num || l>num-1 || c>num-1);
for(i=0;i<=tam;i++)
*(pvet+(l*num)+c+i)=*(ppalavra+i);
//verifica c deseja colocar mais uma palavra
fflush(stdin);
if(a!=(qtd-1) || qtd!=1)
{
printf("\nPalvra inserida com sucesso: \n\n\n");
}
a++;
} while(a<qtd);
}
else
return 0;
}
void mostrar(char pvet,char pletra)
{
int i,j;
system("cls");
printf("\n\n\t >>>>> Palavras escondidas <<<<<\n\n");
for(i=0;i<num;i++)
printf("\t%i",i);
for(i=0;i<num;i++) //Se não fizer isso não da pra imprimir direito
{
printf("\n%i",i);
for(j=0;j<num;j++)
{
printf("\t%c",*(pvet+(i*num)+j));
}
}
printf("\n\n");
}
void procura(char pletra,char pvet,char *pmat)
{
int i,error=0;
//tabela asc => a = 97 A=65
fflush(stdin);
printf("digite a palavra que deseja procurar: ");
fgets(pletra,15,stdin);
//conversão
for(i=0;i<num*num;i++)
{
if(*(pletra+i)>=65 && *(pletra+i)<=90)
*pletra=*pletra+32;
}
//verifica se o usuario errou ou acertou
for(i=0;i<num*num;i++)
{
if(*(pletra+i) == *(pvet+i) || (*(pletra+i)) == (*(pvet+i))+32)
{
*(pmat+i)=*(pletra+i);
}
}
}
int conclusao(char pvet,char pmat)
{
int i,j,acerto=0;
for(j=0;j<num*num;j++)
if(*(pvet+j) == *(pmat+j))
acerto++;
printf("%i", acerto);
if(acerto==num*num)
i=1;
else
i=0;
return i;
}Carregando comentários...