2016-04-06 22 views
-2

Bir toplama bulmaca yapmaya çalışıyorum, sorular tüm olası konfigürasyonları numaralandırma ve test ederek toplama bulmacaları kullanmayı sorar ve sonra verilen örnekleri çözmek için kullanır. Verilen örneklerbirisi bu hataları temizlememe yardımcı olabilir

çömlek + tava = önlük

köpek + kedi = domuz

oğlan + kız = bebeğim atamanın sol taraftaki bir değişken olmalıdır belirten bir hata almaya devam

vardı

charSet.charAt (setIndex ++) = stringTwo.charAt (loop);

int'den boole dönüştürülemiyor.

(= 0 var) eğer bunu çalışmaz görüntü çıkışı deneyin benim kodunda Ayrıca

.

import java.util.Scanner; 
public class Recursion 
{ 
    // Example program 


    public static String stringOne = new String(new char[10]); 
    public static String stringTwo = new String(new char[10]); 
    public static String stringThree = new String(new char[11]); 
    public static String charSet = new String(new char[11]); 
    public static int numberOne; 
    public static int numberTwo; 
    public static int numberThree; 

    public static int maxCharCount; 

    public static int[] numberSet = new int[10]; 

    public static void checkForEquality() 
    { 

    numberOne = numberTwo = numberThree = 0; 
    int loop; 
    int subloop; 


     for (loop = 0; loop < stringOne.length(); loop++) 

     { 
      for (subloop = 0; subloop < maxCharCount; subloop++) 

      { 
      if (stringOne.charAt(loop) == charSet.charAt(subloop)) 

      { 
      if (loop == 0 && numberSet[subloop] == 0) 

     return; 

     //generate the number 

     numberOne = (numberOne * 10) + numberSet[subloop]; 
      } 
      } 

     } 
     for (loop = 0; loop < stringOne.length(); loop++) 

     { 
      for (subloop = 0; subloop < stringTwo.length(); subloop++) 

      { 
      if (stringTwo.charAt(loop) == charSet.charAt(subloop)) 

      { 
      if (loop == 0 && numberSet[subloop] == 0) 

     return; 

     //generate the numeber 

     numberTwo = (numberTwo * 10) + numberSet[subloop]; 
      } 
      } 
     } 


     for (loop = 0; loop < stringThree.length(); loop++) 

     { 
      for (subloop = 0; subloop < maxCharCount; subloop++) 

      { 
      if (stringThree.charAt(loop) == charSet.charAt(subloop)) 

      { 
       if (loop == 0 && numberSet[subloop] == 0) 

     return; 

     //generate the number 

     numberThree = (numberThree * 10) + numberSet[subloop]; 
      } 
      } 
     } 

     if (numberOne + numberTwo == numberThree) 
     { 
     //display the output 

     System.out.print(" Summation Puzzle solved. "); 

     System.out.print("\n"); 
     System.out.print(stringOne); 
     System.out.print("<==>"); 
     System.out.print(numberOne); 
     System.out.print("\n"); 
     System.out.print(stringTwo); 
     System.out.print("<==>"); 
     System.out.print(numberTwo); 
     System.out.print("\n"); 
     System.out.print(stringThree); 
     System.out.print("<==>"); 
     System.out.print(numberThree); 
     System.out.print("\n"); 

    //loop to show the result 

    for (loop = 0; loop < maxCharCount; loop++) 
    { 
     System.out.print(charSet.charAt(loop)); 
     System.out.print("<==>"); 
     System.out.print(numberSet[loop]); 
     System.out.print("\n"); 
    } 

    System.exit(0); 

     } 
    } 


     public static void generateCombinations(int indexCounter, int[] availableSet) 

     { 
      int loop; 
      if (indexCounter != 0) 
      { 

     for (loop = 0; loop < 10; loop++) 
     { 

     numberSet[indexCounter] = loop; 

     if (availableSet[loop] == 1) 
     { 

     availableSet[loop] = 0; 

     generateCombinations(indexCounter + 1, availableSet); 

     availableSet[loop] = 1; 
     } 
     } 
      } 

     if (indexCounter == maxCharCount) 

     { 
    checkForEquality(); 
     } 

     } 

     public static void createCharSet() 
     { 

     int loop; 
     int setIndex; 
     int exists; 
     int subloop; 

     setIndex = 0; 

     for (loop = 0; loop < stringOne.length(); loop++) 
     { 
      exists = 0; 

     for (subloop = 0; subloop < setIndex; subloop++) 

     { 

     if (stringOne.charAt(loop) == charSet.charAt(subloop)) 
     { 
     exists = 1; 
     } 

     } 
     if (exists == 0) 

     { 
      charSet = StringFunctions.changeCharacter(charSet, setIndex++, stringOne.charAt(loop)); 
     } 
     } 

      for (loop = 0; loop < stringTwo.length(); loop++) 
      { 
     exists = 0; 

     for (subloop = 0; subloop < setIndex; subloop++) 

     { 

     if (stringTwo.charAt(loop) == charSet.charAt(subloop)) 

     { 
     exists = 1; 
     } 

     } 

     if (exists == 0) 
     { 

      charSet = StringFunctions.changeCharacter(charSet, setIndex++, stringTwo.charAt(loop)); 

     } 
      } 

     for (loop = 0; loop < stringThree.length(); loop++) 

     { 
      exists = 0; 

     for (subloop = 0; subloop < setIndex; subloop++) 

     { 

      if (stringThree.charAt(loop) == charSet.charAt(subloop)) 
      { 
     exists = 1; 
      } 
     } 

      if (exists == 0) 
      { 


      charSet = StringFunctions.changeCharacter(charSet, setIndex++, stringThree.charAt(loop)); 
      } 
     } 

      maxCharCount = setIndex; 
     } 

      public static void calculateSummation() 

      { 
      int loop; 

     if (maxCharCount > 10) 

     { 

     System.out.print("Please check the input again"); 

     return; 
     } 
      else 

      { 

      int[] avaliableSet = new int[10]; 

     for (loop = 0; loop < 10; loop++) 
     { 

      avaliableSet[loop] = 1; 
     } 

      generateCombinations(0, avaliableSet); 
      } 
      } 

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

      System.out.print(" Enter the first String :"); 
      stringOne = scan.next(); 


      System.out.print(" Enter the second String :"); 
      stringTwo = scan.next(); 

      System.out.print(" Enter the thirsd String :"); 
      stringThree = scan.next(); 

     createCharSet(); 



     System.out.print(" The character set formed from the given string = "); 
     System.out.print(charSet); 

     calculateSummation(); 
     checkForEquality(); 
      } 
} 
+3

İletinizdeki herhangi bir hatadan bahsettiğinizi görmüyorum –

+2

Adım 1: Hata mesajlarını okuyun. – SLaks

+1

Adım 2: Girinti kodu uygun şekilde. – robotlos

cevap

1

senin sorunlarına Bir çok Yazdığınız kodu sözdizimi hataları kaynaklanan edilmektedir. Örneğin:

  1. line 74: if (stringThree.charAt(loop) == charSet.charAt(subloop) != null)

    • charSet.charAt(subloop) != nullnull karşılaştırırken != operatör Boolean için kullanılamaz çünkü, geçersiz bir karşılaştırmasıdır. Karakterlerin .charAt(var)'dan dönüp dönmeyeceğini belirlemeye çalışıyorsanız, her object.charAt(var)'un bağımsız karşılaştırmasını null olarak yapmak için parantez kullanın. Değişken yerel olarak mevcut değil veya genel olarak tanımlanmış olmamıştır olarak
  2. line 183: charSet = tangible.StringFunctions.changeCharacter(charSet, setIndex++, stringOne.charAt(loop));

    • tangible
    • ironik somut değildir.

      charSet.charAt(setIndex++) = stringTwo.charAt(loop);

      • charSet.charAt(setIndex++)
    • bir karakter veren bir yöntemdir. Bu, belirtilen endeksteki karakteri bir değişken gibi ayarlayabileceğiniz anlamına gelmez. koşullu içinde karşılaştırmalar yaparken
  3. line 227: if (exists = 0)

    • Sen == kullanmalıdır.

      line 269: Scanner scan = new Scanner(System.in);

      • Scanner sınıfı
    • içe edildi ve bu şekilde kullanılamaz.

      line 283: charSet.charAt(maxCharCount) = '\0';

    • Yine, bu bir değişken gibi o dizinde karakterini ayarlamak için .charAt(var) kullanamazsınız.

bu sorunların tamamı Eclipse olarak kendilerinin belirlediği uygun bir IDE kullanılarak, böyle olabilir.

Düzenleme: Algoritmanızı göstermek için kodu yazmadan önce, programınızın mantığını kullanarak kalem ve kağıt kullanarak biraz daha fazla zaman harcamayı deneyin. Bu sayede odaklanabilirsiniz ve daha kapsamlı, yorumlanmış, daha temiz kodlar yazabilirsiniz. Here, mevcut projenizi yoğunlaştırmanıza yardımcı olacak bir kılavuzdur.

+1

Veya [IntelliJ IDEA] (https://www.jetbrains.com/idea/), çok güzel ücretsiz bir Topluluk Sürümü sunar. – dnault

+0

@dnault "Neden Eclipse'i kullanmıyorsunuz? Bu iyi bir _only_ IDE." – Zulfe

+0

Birisi bu kodu çalıştırabilir ve neden ekran çıkışımın çalışmadığını söyleyebilir? –

İlgili konular