Duvida no codigo

1. Duvida no codigo

Guilherme de Oliveira Bexiga
guilhermebrasil9

(usa Ubuntu)

Enviado em 12/03/2016 - 01:01h

Galera, fiz um codigo que ele tem que receber alguma frase escrita pelo user e mostrar na tela apenas as palavras que sao palindrome

/* Main function of the C program. */

#include <stdio.h> // input e output// entrada e saida
#include <stdlib.h> //
#include <string.h> // para manipula metodos que tem have com string


//Declarando minhas funcoes
int palindromo(char * palavra);
int length(char *string);


int main(int argc, char * argv[])
{
int i;
printf("Digite a palavra:\n");
char *palavras[1000];
scanf("%s", palavras[i]);

for(i = 0; i < 1000 ;i++) {
verificaPalin(palavras[i]);
}
return 0;
}



int palindromo(char * palavra) {
int t = length(palavra); // pegamos o tamanho da palavra
char aux[t];
int j = 0;
int i;
for (i = 0; i < t; i++) {
if(palavra[i] == ' ')
continue;
else{
aux[j] = palavra[i];
j++;
}
}

if(t % 2 != 0 ) {
aux[i] = '\0'; // mostrando o final da string
}else if(i+1 == t)
{
aux[i+1] = '\0';
}
t = length(aux);
for(i = 0; i < t; i++)
{//percorrendo a palavra sem espaco
if(aux[i] != aux[t - i - 1])
{// se tive uma letra diferente, ja n eH palindromo
return 1;//deu ruim
}
}
printf("\n%s eh palindromo", aux);
return 0;// deu bom
}
int verificaPalin(char* palavra) {
if(palindromo(palavra) == 1){
printf("NOPE\n");
return 1;
}else{
printf("Palíndromo\n");
return 0;
}
}

int length(char *string) {
int length = 0;
while(*string){
++length;
++string;
}
return length;
}


Ele nao compila, eu acho que o erro esta no metodo main, alguem ajuda? Porfavor, preciso muito


  


2. Re: Duvida no codigo

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 12/03/2016 - 01:13h

Olha o erro, esta variável verificaPalin que não foi declarada antes de ser usada, acho que este erro é conhecido como Runtime error
error: ‘verificaPalin’ was not declared in this scope| 



3. Re: Duvida no codigo

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/03/2016 - 02:16h

Não é

char * palavra

é

char *palavra.

Um palíndromo para animar:

Socorram-me subi no ônibus em Marrocos.

Este estava no Guiness até um tempo atrás (20 anos).


----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



4. Re: Duvida no codigo

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 12/03/2016 - 02:23h

Eu não sei porque eu não gosto de analisar códigos de outras pessoas (não estou me referindo ao tópico), mas fica tudo mais complicado rsrsrsrsrsrsrs, C e C++ eu ainda não aprendi :-(


5. Re: Duvida no codigo

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/03/2016 - 02:25h

ctw6avqhzj2v2z43 escreveu:

Eu não sei porque eu não gosto de analisar códigos de outras pessoas (não estou me referindo ao tópico), mas fica tudo mais complicado rsrsrsrsrsrsrs, C e C++ eu ainda não aprendi :-(


Prá dizer a verdade nem eu :-)

----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



6. Re: Duvida no codigo

Paulo
paulo1205

(usa Ubuntu)

Enviado em 12/03/2016 - 23:35h

guilhermebrasil9 escreveu:

Galera, fiz um codigo que ele tem que receber alguma frase escrita pelo user e mostrar na tela apenas as palavras que sao palindrome

[ ... ]

Ele nao compila, eu acho que o erro esta no metodo main, alguem ajuda? Porfavor, preciso muito


Se não compila, deve dar alguma mensagem de erro. Que tal você transcrever as mensagens que recebeu?

Não olhei seu código com detalhes, mas um erro gritante que eu vi é que você declara um array com 1000 elementos que são ponteiros de caracteres, onde supostamete você vai armazenar as palavras. No entanto, você não alocou espaço para que cada um desses elementos tenha onde guardar as palavras (lembrando que ponteiros guardam apenas endereços, não os dados a que tais endereços devam fazer referências).

EDIT: Na verdade, a coisa é pior ainda. Você chama

scanf("%s", palavras[ i]); 

num trecho em que nem mesmo i está definido, além de nenhum dos elementos do array palavras estar definido também.


7. Re: Duvida no codigo

felipe silva
lipman

(usa Debian)

Enviado em 13/03/2016 - 01:42h

não use scanf ("%s");
use fgets() !
a sinxtasi é simples, veja:

#include <stdio.h>

int main ()
{
char palavras [500];

printf ("digite uma palavra: ");
fgets (palavras, 500, stdin);

return 0;
}







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts