2017-04-08 10 views
5

Potrzebuję kodu JavaScript, który generuje 3 liczby od 1 do 10 sto razy. Powinien wyświetlać każdy zestaw 3 liczb w nowej linii oddzielonej przecinkami, oraz wyświetla również całkowitą liczbę razy, gdy wygenerowane liczby były równe 7 (także w przypadku w oddzielnej linii). Przykładowy wynik powinien być sformatowany w następujący sposób: Ilość zestaw 1 jest: 10,7,8 Ilość ustawić 2: 5,1,7 kod mam z jakiegoś powodu nie działawyświetla każdy zestaw 3 liczb w nowym wierszu oddzielonym przecinkami

<html> 
<head> 
    <title>Day 3 - Example 7</title> 
</head 
<body> 

<script language="javascript"> 
    // count number of times seven was generated 
    var i,num,n,num1,num2,cnt=0; 
    n=100; 
    for(i=1; i<=n; i++){ 
     num = Math.floor(Math.random()*10+1); 
     num1 = Math.floor(Math.random()*10+1); 
     num2 = Math.floor(Math.random()*10+1); 
     document.write("Number Set " +i+ is + num,+ num1, +num2); 

     if (num == 7) { 
      cnt++; 
     > } 
    } 
    document.write("<br>Total number of Sevens: " + cnt); 

</script> 
</body> 
</html 
+0

można określić dokładną problemu jesteś rozwiązać? również słowo "jest" w dokumencie. nie jest zdefiniowany, prawda? jeśli tak, powinieneś zamknąć te cudzysłowy i symbol plusa, gdy przecinki nie są potrzebne. –

+0

@Pineda przecinki są w porządku, to po prostu "jest" i symbole plus (+) po przecinku OP musi usunąć. –

+0

Musisz również sprawdzić "num1 === 7' i" num2 === 7'! –

Odpowiedz

0

Użyj tej linii: document.write("Number Set "+i+" is "+ num +","+num1 +","+num2);

+0

"jest" nie jest zdefiniowane ... – Pineda

+0

naprawiono już – hmpphep

1

Musisz cytować ciągi w swoim zgłoszeniu document.write().

document.write("Number Set " +i+ " is " + num + ", " + num1 + ", " +num2 + '<br>'); 
+1

nie potrzebujesz znaku nowej linii '\ n'? – Pineda

+0

@Pineda Dobry punkt, ale powinno być '
' – Barmar

1

Kod, który wysłałeś, wydaje się być oparty na Twoim opisie z wyjątkiem kilku drobnych błędów. Oczyściłem go i uruchomiłem tutaj w Stack Overflow.

var i, num, n, num1, num2, cnt = 0; 
 
n = 100; 
 
for (i = 1; i <= n; i++) { 
 
    num = Math.floor(Math.random() * 10 + 1); 
 
    num1 = Math.floor(Math.random() * 10 + 1); 
 
    num2 = Math.floor(Math.random() * 10 + 1); 
 
    console.log("Number Set", i, "is", num, num1, num2); 
 
    if (num == 7) { 
 
    cnt++; 
 
    } 
 
} 
 
console.log("<br>Total number of Sevens: " + cnt);

Uwaga: Podczas korzystania + między ciąg i numer jak masz zrobić, numer zostanie przekształcona w ciąg znaków, a następnie dwa ciągi będą dołączane. Przecinek (,) dołączy wartości oddzielone spacjami. Używałem przecinków, aby było jasne i spójne. Rozstawiłem też pewne elementy pod względem czytelności i użyłem console.log, abyśmy mogli zobaczyć wynik zmian formatowania.

1

Istnieje kilka problemów z kodem:

1) Próbujesz wysłać ciąg do document.write ale nie sformatowana poprawnie. Wszystko, co jest tylko ciągiem znaków, a nie jakąś zmienną, musi być ujęte w cudzysłów. W twoim przypadku obejmuje to: "jest" i przecinki (",").

(Mam umieścić każdą linię w <p> tagu aby upewnić się, że robi się wyjście do nowej linii)

2) Istnieje również bezpański > charakter pod koniec kodu, który musi być oddalony.

Oto przykład zmienionego kodu:

var i,num,n,num1,num2,cnt=0; 
 
n=100; 
 

 
for(i=1; i<=n; i++){ 
 
    num = Math.floor(Math.random()*10+1); 
 
    num1 = Math.floor(Math.random()*10+1); 
 
    num2 = Math.floor(Math.random()*10+1); 
 
    
 
    document.write("<p>Number Set " + i + " is " + num + ", " + num1 + ", " + num2 + "</p>"); 
 
    
 
    if(num == 7){ 
 
    cnt++; 
 
    } 
 
} 
 
document.write("<br>Total number of Sevens: " + cnt);

1

masz kilka problemów:

  1. element <head> nie jest prawidłowo zamknięta.
  2. Masz błędy składniowe w większości obszarów.

Rozważmy następujący rysunek poniżej:

<html> 
 
<head> 
 
    <title>Day 3 - Example 7</title> 
 
</head> 
 
<body> 
 

 
<script language="javascript"> 
 
    // count number of times seven was generated 
 
    var i,num,n,num1,num2,cnt=0; 
 
    n=100; 
 
    for(i=1; i<=n; i++){ 
 
    num = Math.floor(Math.random()*10+1); 
 
    num1 = Math.floor(Math.random()*10+1); 
 
    num2 = Math.floor(Math.random()*10+1); 
 
    console.log("Number Set " +i + " is --> "+ num +", "+ num1 +" ," +num2); 
 
    if(num == 7){ 
 
     cnt++; 
 
    } 
 
    } 
 
    document.write("<br>Total number of Sevens: " + cnt); 
 

 
</script> 
 
</body> 
 
</html

można zastąpić console.log() z tym jest chcesz:

document.write("Number Set " +i+ " is " + num + ", " + num1 + ", " +num2); 
1

var n = 100, 
 
    counter = 0; 
 
for (var i = 1; i <= n; i++) {      // repeat this n times 
 
    var text = "Number Set " + i + " is:";    // text of this set 
 
    for(var j = 0; j < 3; j++) {      // repeat this 3 times 
 
    var num = Math.floor(Math.random() * 10) + 1; // get a random number between 0 an 10 
 
    text += (j? ", ": " ") + num;     // add it to this set's text 
 
    if(num === 7)         // if the random number is seven 
 
     counter++;          // then increment the counter 
 
    } 
 
    document.write(text + "<br>");      // show this set's text 
 
} 
 

 
document.write("Total number of Sevens: " + counter + "<br>"); // the seven's count

+0

Jak dodać przecinki do zestawów liczb? – Carlos

+0

@Carlos zmienić to: 'text + =" "+ num;' do tego: 'text + = (j?", ":" ") + Num;' (co jeśli 'j! = 0' to' " , "+ num" w przeciwnym razie jest '" "+ num')! –

+0

@ ibrahim mahrir świetna odpowiedź, ale miałem na myśli śpiączkę do numerów 1,2,3 – Carlos

0

Dosyć liczni komentatorzy zwrócili uwagę na eros w dokumencie - ja właśnie dodałem wersję, która rozwiązuje problem z odrobiną elegancji.

var setSize = 3, 
 
    totalSize = 100, 
 
    magicNumber = 7, 
 
    magicCounter = 0, 
 
    i = setSize * totalSize, 
 
    set = []; 
 
    
 
do { 
 
    // push random number into set 
 
    set.push(Math.floor(Math.random() * 10 + 1)); 
 
    
 
    // decrement the counter 
 
    i -= 1; 
 
    
 
    // jump to the next iteration, if the set is not complete 
 
    if (set.length !== setSize) { 
 
    \t continue; 
 
    } 
 
    
 
    console.log("Number set is", set.join(', ')); 
 

 
    // reduce the array into the sum of items and check if equal 7 
 
    if (set.reduce(function(a, b) { return a + b; }, 0) === magicNumber) { 
 
     magicCounter += 1; 
 
    } 
 
    
 
    // reset the set for the next line 
 
    set = []; 
 

 
} while (i > 0); 
 

 
console.log("Total number of ", magicNumber, ":", magicCounter);

Powiązane problemy