2017-06-28 1 views
-5

ÜBERBLICK: Geben Sie für 2 ganze Zahlen (num1, num2) eine Funktion zurück, die die Anzahl der Zahlen zwischen num1..num2 zurückgibt, die durch num1 teilbar sind. Zum Beispiel: count (3, 15) gibt 5 (3, 6, 9, 12, 15) zurück. Hinweis: Sie müssen berücksichtigen, Inclusive-Bereich EINGÄNGE: Zwei Nummern num1, num2. num1, num2> = 0.Programm zum Zählen der Zahlen, die durch eine gegebene Zahl teilbar sind

OUTPUT: Gibt die Anzahl der Zahlen zwischen num1..num2 zurück, die durch num1 teilbar sind.

FEHLERFÄLLE: Gibt -1 in Fehlerfällen zurück. Dies ist mein Code:

int count(int num1, int num2) { 
    int temp; 

    int i, j,k; 

    i = num1; 
    j = num2; 
    temp = 0; 
    for (k = 1; k <= j;k++) 
    { 
     if (k%i == 0) 
      temp++; 


    } 

    return temp; 

} 

Während des Laufens Testfall in Visual Studio nur ein Test bestanden wird und ein weiterer Test ist nicht für den Test bestanden haben. Der Teil, den ich markiert habe, ist der Test, der fehlgeschlagen ist. (Countzero Testfall)

enter image description here Im Folgenden ist der Fehler, der ausgelöst wird, wenn ich es in Werkzeug versucht, ausgeführt wird. enter image description here Bitte helfen Sie mir

+2

Veröffentlichen Sie keine Bilder von Text. Lesen Sie [fragen]. – Olaf

+0

Die hilfreichste Sache, die Sie tun können, ist zu versuchen, in Worten selbst zu erzählen, was Sie denken, dass Ihr Code für ein paar einfache Testfälle tut. Wenn es einfacher ist, können Sie mit dem fehlerhaften Testfall beginnen. Sie geben nicht an, was der Fehlerfall ist, aber versuchen Sie 'count (9, 10)'. Ich denke, die zurückgegebene Antwort sollte "0" sein, aber Ihre Implementierung wird "1". Gehen Sie den Code durch, wenn "num1" 9 ist und "num2" 10 ist, Schritt für Schritt in Ihrem Kopf. –

+0

Ich kann deine Bilder nicht sehen. Wie auch immer Sie gesagt haben, Sie wollen Zahlen zwischen eingefügten Zahlen zählen, aber Sie beginnen bei 1 in der "for" -Schleife.Ihre for-Schleife sollte wie folgt sein: 'für (k = num1; k <= num2; k ++) {if (k% num1 == 0) temp ++;}' –

Antwort

1

Sie sind fast da. Hier ist der Pseudo-Code von dem, was gefragt wurde, vergleichen Sie mit Ihrer Funktion, fügen Sie die fehlenden Teile hinzu, und es sollte die Tests ohne Probleme bestehen.

Funktion (num1, num2), kehrt zählen

  • Scheck-Eingabe ist im angegebenen Bereich: num1 < = num2? num1, num2> = 0? von Null
      • wenn nicht, Rückkehr -1
    • wir% verwenden werden, geben Sie überprüfen Kluft zu vermeiden, wenn num1 == 0, Rückkehr -1
  • Reset-Zähler
  • Schleife für (i = num1; i < = num2; ++ i)
  • wenn i% num1 == 0, (sho ULD sicher sein, sind, wenn alle Fehlerfälle bereits abgedeckt)
    • ++
  • Endschleife
  • return Zahl zählen.
Verwandte Themen