Ir ao conteúdo

Posts recomendados

Postado

Pessoal, estou errando algo neste código, o problema é relacionado a palíndromo , que é uma sequência de caracteres que inicio para o fim ou do fim para inicio representam a mesma palavra (p.ex ana, arara etc.)

O problema pede que leia um número n inteiro maior que zero (par ou ímpar); Um vetor de n elementos caracteres e a escrita de uma mensagem de sim ou não, caso seja ou não seja o vetor um palindromo.

 

O código está assim:

 

#include<conio.h>
#include<stdio.h>
#include<math.h>

int main ()
{
    float v[i];
    int i, num, palind;

    printf ("Entre com um numero inteiro maior que zero:\n\n ");
    scanf("%d", n);

    printf("        Entre com numeros para o vetor:\n\n\n");

    for (i=1; i <=n; i++)

        scanf("%c", &v[i]);

    palind = 1;

    for (i = 1; n/2; i++)
    {
        if (v(i) != v(n-1+1))
        palind = 0;

    }

    if (palind == 1)

        printf ("\né um palindromo!");
    else

        printf("\n\n Nao eh uma palindromo!");

}

 

 

Onde penso que estejam os erros e não sabendo alterá-los:

int main ()
{
    float v[i];                  // aqui creio que nao estou declarando a variável de modo correto, tipo a quantidade de vetor (pelo exercício                                           proposto) deveria ser estabelecido pela quantidade n estabelecida no scanf adiante


    int i, num, palind;

   


    scanf("%d", n);



    for (i=1; i <=n; i++)

        scanf("%c", &v[i]); // creio que aqui não estou sabendo fazer para que a leitura dos N vetores seja incutida por caracteres

    	palind = 1;

  

  for (i = 1; n/2; i++)
    {
        if (v(i) != v(n-1+1)) // aqui está aparecendo o erro: called object 'v' is not a function or function pointer|
        palind = 0;

    }

 
}

 

 

Como posso corrigir isso?

Postado
2 horas atrás, T1000_2015 disse:

Amigo, creio que o problema está na declaração do vetor como float.

Se você declara-lo como número inteiro, será que resolve?

 

Oi, @T1000_2015

Fazendo como sugeres o erro passa para o segundo for, além da linha de declaração de variáveis:

 

|22|error: called object 'v' is not a function or function pointer|
|7|note: declared here|
|22|error: called object 'v' is not a function or function pointer|
|7|note: declared here|

 

 

1 hora atrás, CiroboyBR disse:

Isso aqui parece ser um erro, pois se é uma comparação deveria ser:


if (palind == 1)

 

Oi, @CiroboyBR ,

 

Obrigado, passou desapercebido, corrigi. porém não executa ainda, o problema persiste, o erro continua aparecendo na parte da declaracao de variável:

 

|7|error: 'i' undeclared (first use in this function)|

|7|note: each undeclared identifier is reported only once for each function it appears in|

 

Creio que não estou sabendo declarar o vetor de modo que ele receba caracteres e comporte um tamanho estabelecido pela entrada de n.

 

Como posso fazer isso?

Postado

@LucasCBSouto  Uma opção seria alocação dinâmica, se não possui conhecimento, recomendo dar uma olhada pois seria uma boa.

 

Agora sobre o seu código, está dando que i não foi declarado, e é isso mesmo, você declarou um vetor de float do tamanho i, sendo que a variável i só será criada na linha abaixo, então não dará certo, e mesmo se criar depois do i irá dar problemas pois o mesmo não terá valor, então uma solução é ler o tamanho que o usuário deseja na variável n, logo após você aloca dinamicamente o vetor float com tamanho n.

  • Curtir 1

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...