Ir ao conteúdo
  • Cadastre-se

Algoritmo em java, falha na logica.


Caíque Tosta

Posts recomendados

Estou fazendo um trabalho para a faculdade que consiste em ler duas sequencias p e t do tipo cadeia, e mostrar em que posições t ocorrem em p, mas meu codigo nao esta dando certo, nao entendo o porque, se minha logica esta errada e tal, se puderem me ajudar. anda estou no primeiro ano.


import java.util.Scanner;
public class Teste
{


public static void main(String args[])

{

Scanner teclado = new Scanner(System.in);


int M, N, i, i2, i3;
boolean teste;
String[] p=new String[15000];
String[] t=new String[15000];
String[] aux=new String[15000];
String[] comp=new String[15000];
System.out.println("Informe quantas letra tera em p");
N = teclado.nextInt();
System.out.println("Informe quantas letra tera em t");
M = teclado.nextInt();
teste=false;
for(i=0; i < N; i++)
{
System.out.println("Informe a letra" + (i+1) + "de p");
p[i] = teclado.next();
}
for(i=0; i < M; i++)
{
System.out.println("Informe a letra" + (i+1) + "de t");
t[i] = teclado.next();
}

for(i=0; i < N-1; i++)
{
for(i2=0; i2 < M; i2++)
{
aux[i2] = p[i2+i];
}
for(i3=0; i3 < M; i3++)
{


if(t[i3] == aux[i3])
{
teste = true;
System.out.println("teste");

}
System.out.println("teste2" + aux[i3]);
System.out.println("teste3" + t[i3]);
}
if(teste == true)
{
System.out.println("Sequencia t existe em p na posição:" + (i+1));
}
teste = false;
}
}
}

Link para o comentário
Compartilhar em outros sites

Meu código ficou como abaixo, mas não entendi porque declarar as strings com 15000...

package Foruns;

import java.util.Scanner;

public class Teste {
public static void main(String args[]) {
Scanner teclado = new Scanner(System.in);

int M, N, i, i2;
String[] p = new String[15000];
String[] t = new String[15000];
System.out.println("Informe quantas letra tera em p");
N = teclado.nextInt();
System.out.println("Informe quantas letra tera em t");
M = teclado.nextInt();
for (i = 0; i < N; i++) {
System.out.print("Informe a letra " + (i + 1) + " de p ");
p[i] = teclado.next();
}
for (i = 0; i < M; i++) {
System.out.print("Informe a letra " + (i + 1) + " de t ");
t[i] = teclado.next();
}
System.out.println("\nM " + M + " N " + N);
for (i = 0; i < N; i++) {
for (i2 = 0; i2 < M; i2++) {
if (p[i].equals(t[i2])) {
System.out.println("\n t ocorre em p na posicao: " + String.valueOf(i2));
}
}
}
}
}

Link para o comentário
Compartilhar em outros sites

Arquivado

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

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!