APERÇU: Étant donné 2 entiers (num1, num2), écrire une fonction qui renvoie le nombre de nombres entre le num1..num2 qui sont divisible par num1. E.g .: count (3, 15) renvoie 5 (3, 6, 9, 12, 15). Remarque: Vous devez prendre en compte la plage inclusive ENTRÉES: Deux nombres num1, num2. num1, num2> = 0.programme pour compter les nombres qui sont divisibles par nombre donné
SORTIE: renvoie le nombre de nombres entre num1..num2 divisible par num1.
CAS D'ERREUR: Renvoie -1 dans les cas d'erreur. Voici mon 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;
}
Pendant l'exécution de cas de test en studio visuel un seul test est passé et un autre test ne passe pas pour les tests. La partie I mise en évidence est le test qui a échoué. (CountZero testcase)
Ce qui suit est l'erreur qui est levée lorsque je l'ai essayé en cours d'exécution dans l'outil. S'il vous plaît aider moi
Ne postez pas d'images de texte. Lire [demander]. – Olaf
La chose la plus utile que vous pouvez faire est d'essayer de vous raconter, en mots, ce que vous pensez que votre code fait pour quelques cas de test simples. Si c'est plus facile, vous pouvez commencer avec le cas de test défaillant. Vous n'indiquez pas quel est le cas d'échec, mais essayons 'count (9, 10)'. Je pense que la réponse devrait être "0" mais votre implémentation obtient "1". Parcourez le code pour quand 'num1' est 9 et' num2' est 10, étape par étape dans votre tête. –
Je ne peux pas voir vos images. De toute façon, comme vous l'avez dit, vous voulez compter les nombres entre les nombres insérés mais vous partez de 1 dans la boucle 'for'.Votre boucle for devrait être comme suit: 'pour (k = num1; k <= num2; k ++) {if (k% num1 == 0) temp ++;}' –