-1
votes

CAS 3: Si n est multiple des 3 et 5

Je ne suis pas capable de trouver la ligne d'écriture pour le troisième cas. Je suis débutant dans le monde de la programmation. Beaucoup apprécié si quelqu'un m'a aidé avec cela grâce à l'avance!

#include <stdio.h>
int main()
{
    int n;

    scanf("%d",&n);

    if(n%3==0) {
      printf("\n 1");}
    else if(n%5==0){
      printf("\n 2");}
    else if((n%3==0) && (n%5==0)){
      printf("\n 3");}
    else{
      printf("\n 4");
    }

    return 0;
}


3 commentaires

Vous devez mettre si ((n% 3 == 0) && (n% 5 == 0)) premier.


Supposons que n est 15. Suivez la ligne de code par ligne et essayez de déterminer comment cela se comportera et pourquoi.


Si vous souhaitez tester les deux cas, n'utilisez pas sinon


4 Réponses :


1
votes

Tout d'abord, vous vérifiez si le numéro peut être divisé par 3, puis vous vérifiez si cela peut être divisé par 5, puis s'il peut être divisé en deux.

Si cela peut être divisé par les deux (en d'autres termes, il peut être divisé par 15), il peut alors être divisé par 3, de sorte que vous sortez de la première boucle et d'imprimer "\ n 1".


0 commentaires

1
votes

changer l'ordre de votre test. Si vous mettez d'abord le plus long cas, alors si N% 3 et N% 5 == 0, il imprimera. Sinon, cela peut être l'un ou l'autre. XXX

Une autre façon de le faire si vous voulez vraiment garder la commande consiste à tester sur les cas simples qu'ils ne sont pas à la fois true, c'est-à-dire : xxx


0 commentaires

1
votes

la condition de test, sinon si ((N% 3 == 0) && (n% 5 == 0)) code>, ne sera jamais vrai, car si n% 3 == 0 code> Le 1. test, si (n% 3 == 0) code>, l'attrapera avant. Il en va de même pour le cas si n% 5 == 0 code> avec le test 2. Test, ele si (n% 5 == 0) code>.

Vous devez Place si ((n% 3 == 0) && (n% 5 == 0)) code> au début de la preuve des deux sous-expressions avant le test de chaque sous-expression: P >

scanf("%d",&n);

if ((n % 3 == 0) && (n % 5 == 0)) {
  printf("\n 1");
}
else if (n % 5 == 0) {
  printf("\n 2");
}
else if (n % 3 == 0) {
  printf("\n 3");
}
else {
  printf("\n 4");
}


0 commentaires

0
votes

Je ne suis pas capable de trouver la ligne d'écriture pour troisième cas. P>

//         v------v                 1 for multiple of 3              
//                        v------v  2 for multiple of 5
int m15 = (n%3 == 0)*1 + (n%5 == 0)*2;
if (m15 == 0) m15 = 4;
printf("\n %d", m15);`

0 commentaires