Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com programa


arthurdr

Pergunta

Estou fazendo um programa, mas estou trancado em uma parte. O ojetivo desta parte do programa é ver se as letras em que o usuário digita, são iguais as permitidas. Procurei algumas maneiras de fazer isso, mas só achei essa. O problema deste programa é que quando ele vai analisar a cadeia t, ele sempre mostra que a cadeia é invalida, mesmo estando dentro do exigido, abrindo melhor a cadeia t, descobri que o programa sempre diz que a 18º letra é invalida, mas não consegui descobrir o motivo, mesmo ponto letras validas, a 18º ele mostra que é errada.

A parte do programa é essa:

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

main()
{
    int M, N, i, j, a, b;
    char p[M], t[N];
    int letrasT, letraT, letrasP, letraP;
    
    M=5;
    N=25;
do
{
    do
    {
        i=0;
        letraP=0;
        letrasP=0;
        printf ("\n    Digite a cadeia p: ");
        scanf ("%s", p);
        if (M!=strlen(p))
            printf ("\n\n        !!!TAMANHO DE p INVALIDO!!!\n");
        for (i=0; i<M; i++)
            if ((p!='A') && (p!='C') && (p!='G') && (p!='T'))
                letrasP=1;
            else
                letrasP=0;
        for (i=0; i<M; i++)
            if (letrasP==1)
                letraP=1;
        if (letraP==1)
            printf ("\n\n        !!!CADEIA DE p INVALIDA!!!\n");
    }while (letraP==1);
}while (M<strlen(p));
    
do
{
    do
    {
        i=0;
        letraT=0;
        letrasT=0;
        printf ("\n    Digite a cadeia t: ");
        scanf ("%s", t);
        if (N!=strlen(t))
            printf ("\n\n        !!!TAMANHO DE t INVALIDO!!!\n");
        for (i=0; i<N; i++)
            if ((t!='A') && (t!='C') && (t!='G') && (t!='T'))
                letrasT=1;
            else
                letrasT=0;
        for (i=0; i<N; i++)
            if (letrasT==1)
            printf ("*%i", letrasT);
                letraT=1;
        if (letraT==1)
            printf ("\n\n        !!!CADEIA DE t INVALIDA!!!\n");
    }while (letraT==1);
}while (N<strlen(t));
    
printf ("\n%s", p);
printf ("\n%s", t);
}

Algumas partes vieram erradas. O print está completo:

Screenshot_1.png

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Analisando seu código vi uma coisa que pode ajudar

Você esta comparando somente letras maiúsculas e minusculo e maiúscula são diferentes 

Não sei se vai ajeitar seu código, pois ele esta meio confuso mas faça isto

 

#include <string.h>
  
  strupr(VARIAVEL);

o STRUPR ele aumenta od caracteres tornando assim maiúsculo, fazendo muito mais fácil a comparação

sugiro você estudar esta biblioteca "string.h"

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...