Ir ao conteúdo

Posts recomendados

Postado

Gostaria de criar um programa que me diz se uma palavra e palíndromo ou não, me dando ela invertida porém não posso usar a biblioteca string.h e queria saber por onde começo para desenvolver

Postado

preciso concerta esse codigo e acrecentar o aparecimento da caixa de dados a palavra invertida se usar a string.h


 

/ Informar ao usuario
//se a palavra e palindroma
//teste 2
#include <stdio.h>
#include <stdlib.h>

#define MAX_SIZE 250
#define MAX_SIZE_WORD 16 

int main ()
{
    int j,
        flag,
        toupper;
    char entrada [250],
         invertida[250],
         str[MAX_SIZE]; 
//entrada de dados
    printf("Entre com a palavra: \n");
    scanf("\n %c", &entrada);

//converte para mínusco a entrada da palavra
//falta isso aqui ainda
//para as letras]
    scanf("%i", &j);
    scanf("%c", &entrada);
    scanf("%c", &invertida);
    for ( int j = ( entrada[j] - 1)/2 ; j > 0; j--){
    if (j = (entrada[j])/2 - j - 1){
        printf("\nPalindroma \n");
        
    }
    else { 
        (entrada[j] != invertida[j]);
        printf("\nnao e palindroma \n");
        break;
        }
    }
    return 0;
}  

 

Postado

Olá!

 

As intensões estão claras, apesar de que tem "interpretações" falhas dos recursos da linguagem. 

Se os passos pensados forem: capturar, converter Caixa Alta, duplicar Invertidamente para em seguida, comparar cópia invertida com original e assim determinar ser palíndromo. Continue porque está certo, funcionará.

 

Mas, precisa de revisão na linguagem C.

#1

  //entrada de dados
  printf ("Entre com a palavra: \n");
  scanf ("\n %c", &entrada);

Perfeito com reação à printf, a scanf nem tanto: o que chamam 'formato' na scanf é um argumento que lhe especifica quais categorias de dados tem na entrada. Nesse caso, o especificador "%c" insinua 1 caractere. Porém, queremos uma palavra — segmento com máximo de caracteres entre dois espaços / sinais

 

A função é perfeita para captura, apenas o especificador que não, pois, ainda que lhe atribua largura ("%249c")  terá problema.

 

#2

  scanf ("%c", &invertida);

duplicar invertidamente é uma rotina no programa. Quando escolher o especificador ideal para capturar, notará que ele faz a scanf retornar o número de caracteres capturados, ou seja, a largura da palavra, uma informação prática já que precisamos duplicar ela invertidamente.

 

#3

  for (int j = (entrada[j] - 1) / 2; j > 0; j--) {
      if (j = (entrada[j]) / 2 - j - 1) {
         printf ("\nPalindroma \n");
      }
      else {
         (entrada[j] != invertida[j]);
         printf ("\nnao e palindroma \n");
         break;
      }
  }

comparar duas ‘strings’ é uma rotina de iteração com compreensão do início até fim da menor delas.

No fim de uma “strings” tem o valor nulo (0, ou literal '\0'), pense na maneira que esse dado ajudaria na expressão de controle ("continuidade") do ‘loop’.

 

[:)

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!