Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ThallysonDias

Encontrar Palíndromo

Recommended Posts

Estou com dificuldades em terminar.

1 - Escreva um algoritmo que determine se um numero é ounão um palíndromo. Um palíndromo é um numero que possui uma simetria especular nos digitos. Por exemplio, 9339, 1234554321. Suponha que cada digito de entrada esteja armazenado em um vetor.

 

void VerificacaoPalindromo ( numeroDigitado[] ){

int aux;
int GuardaNumero;

aux = numeroDigitado;
GuardaNumero = 0;

while (aux != 0) {

GuardaNumero = GuardaNumero *10 +aux % 10;
aux = aux /10;
}

if ( GuardaNumero == numeroDigitado)
cout << "E' Palindromo "; 
else << " Nao e' palindromo ";

return 0;
}

So eh necesario fazer essa função, que verifica se é palíndromo ou não. mais eu creio que ainda esta errado esse algoritmo meu.

 

Codigo em C

 

Dese ja obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz assim:

#include <stdio.h>
#include <conio.h>
#include <string.h>
void VerificacaoPalindromo (char numeroDigitado[]);
int main()
{
char s1[100];
int num=0;
printf("Digite um numero: ");
scanf("%d",&num);
itoa(num,s1,10);
VerificacaoPalindromo(s1);
getch();
return 0;
}

void VerificacaoPalindromo (char numeroDigitado[]){
char s2[100];
strcpy(s2,numeroDigitado);
strrev(numeroDigitado);
if(!strcmp(numeroDigitado,s2)) printf("Palindromo");
else			   printf("Nao Palindromo");
printf("\n");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmmm, voce pode comentar por favor?

que eu ainda tenho meio dificuldade de so de olhar intender...

 

scanf("%d",&num);
n intendi isso, essa %, e &, e isso tudo ai é uma função somente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include<stdio.h>

#include<stdlib.h>

int palindromo(int num);

main()

{

int n,ver;

printf("digite o palidromo\n");

scanf("%d",&n);

while((n<10000) || (n>99999))

{

printf("erro! o numero não tem 5 digitos\n");

printf("digite o numero\n");

scanf("%d",&n);

}

ver=palindromo(n);

if(ver==1)

{

printf("%d e palindromo",ver);

}

else

{

printf("%d nao e palindromo",ver);

}

system("pause");

}

int palindromo(int num)

{

int x,y;

y=num;

x=0;

while(y!=0)

{

x=(x *10)+(y%10);

y=y/10;

 

}

if(num==x)

{

return 1;

}

else

{

return 0;

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

o msm codigo soh q agora comentado entaum, pra você entender:

#include <stdio.h>   //inclui a biblioteca de entrada e saida
#include <conio.h>  //inclui a biblioteca q contem comandos para tratamento do video(creio eu)
#include <string.h> //incluia a biblioteca de tratramento de string
void VerificacaoPalindromo (char numeroDigitado[]);  //to fazendo a prototipação da função 
int main()  //É aki o ponto de partida o 'main' q qr dizer 'principal'
{
char s1[100]; //to criando uma variavel do tipo char(caracter) q tem capacidade de armazenamento de 100 caracteres
int num=0; //to criando uma variavel do tipo int(inteiro) e inicializo ela com 0
printf("Digite um numero: ");   //comando de escrita na tela
scanf("%d",&num);				 //comando de leitura '%d' indica q vai receber um numero inteiro, e o '%' esta referenciando q variavel vai receber esse valor;
itoa(num,s1,10); //a função itoa transforma int em char, sintaxe = itoa(original, destino, base_decimal)
VerificacaoPalindromo(s1); //to xamando a função e passando de parametro o numero convertido em char
getch();  //serve para esperar uma tecla para poder prosseguir
return 0;  //retorna ao programa principal q td ocorreu com sucesso
}

void VerificacaoPalindromo (char numeroDigitado[]){
char s2[100];
strcpy(s2,numeroDigitado);	  //comando q copia uma string em outra, sintaxe = strcpy(destino, origem)
strrev(numeroDigitado);		 //comando serve para inverter strings
if(!strcmp(numeroDigitado,s2)) printf("Palindromo");	//aki tem uma condição e nele o comando strcmp compara uma string com outra!
else			   printf("Nao Palindromo");
printf("\n");
}

Espero q você tenha entendido, qlqr duvida volte a postar!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <stdio.h>

#define TAM 3

 

int main (){

int vetor[TAM];

int x,i=0;

 

x = sizeof(vetor)/4;

 

while(i<(x-1)/2){

if (vetor != vetor[x-1-i]){

printf ("Nao eh Palindromo");

getch();

return 0;

}

i++;

}

 

printf ("eh palindromo ");

 

getch();

return 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int palindromo(char* n) {
 int meio = strlen(n)/2;
 int i,j;
 j=strlen(n)-1;
 for(i=0;i<meio;i++) {
 if(n[i] != n[j])
	return 0;
 j--;
 }
 return 1;
}


int main(){
  char* n=NULL;
  size_t p;
  getline(&n,&p,stdin);
  n[strlen(n)-1]='\0';
  if(palindromo(n))
  puts("Eh palindromo");
  else
  puts("Nao eh palindromo");
  n = NULL;
  free(n);
}

 

Alguem aí pode ver se isso passa também? Tenho aula de arquitetura daqui a pouco e so testei com uns 5 casos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha o compilador aki naum reconhece geline!

+ analizando a lógica parece estar certo sim!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Windows...Nem reconhece e nem vai reconhecer... getline é extensão GNU.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai amigo da uma olhada nessa resolução, acho que é o que voce procurava, muito mais pratica e simples........link abaixo

 

UCANFORUM

 

Muito bom!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.