Urgent Langage C

keurdange Messages postés 816 Statut Membre -  
keurdange Messages postés 816 Statut Membre -
Bonjour,

Quelqu'un pourrait me dire comment on fait un programme qui affiche tous les nombre 1ers compris entre 2 intervalles?



--
Dieu n'a fait qu'ébaucher l'homme, c'est sur terre que chacun se crèe

2 réponses

  1. keurdange Messages postés 816 Statut Membre 232
     
    voici mon programme:

    #include<stdio.h>
    int nbr,n,compter,lim1,lim2,compter1;
    main()
    {
    do
    {
    printf("Donner la valeur de la 1ère limite: ");
    scanf("%d", &lim1);
    }
    while(lim1<0);
    do
    {
    printf("Donner la valeur de la 2e limite (elle doit être supérieure à la 1ère limite): ");
    scanf("%d", &lim2);
    }
    while(lim2<lim1);
    for(nbr=lim1;nbr<=lim2;nbr++)
    {
    for(n=2;n<=lim2;n++)
    {
    if(nbr%n==0)
    {
    compter=1;
    compter1=compter+1;
    compter=0;
    }
    }
    if(compter1==1)
    printf("%d est un nombre premier\n", nbr);
    else
    printf("Il n'y a pas de de nombre premier entre %d et %d", lim1,lim2);
    }
    }
    Dieu n'a fait qu'ébaucher l'homme, c'est sur terre que chacun se crèe
    0
  2. Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   54
     
    Bonjour, l'idée est la bonne
    petite correction :
    #include<stdio.h>
    int nbr,n,compter,compter1,lim1,lim2;
    int main(void)
      {
        do
          {
            printf("Donner la valeur de la 1ère limite: ");
            scanf("%d", &lim1);
          }
        while(lim1<0);
        do
          {
            printf("Donner la valeur de la 2e limite (elle doit être supérieure à la 1ère limite): ");
            scanf("%d", &lim2);
          }
        while(lim2<lim1);
        for(compter1=0,nbr=lim1;nbr<=lim2;nbr++)
          {
            for(compter=0,n=2;n<=lim2;n++)
              {
                if(nbr%n==0)
                  {
                    compter++;
                  }
              }
            if(compter==1){
                printf("%d est un nombre premier\n", nbr);
                compter1++;
            }
          }
        if(!compter1)
            printf("Il n'y a pas de de nombre premier entre %d et %d", lim1,lim2);
        return 0;
      }
    
    0
    1. keurdange Messages postés 816 Statut Membre 232
       
      Ok, merci beaycoup. je suis actuellement sur windows. je l'essayera sur ubuntu pr vwr si ca marche et je te tiens au courant.
      0
    2. keurdange Messages postés 816 Statut Membre 232
       
      Ok, merci et ca marche. mais y a t-il une different entre main() et main(void)?
      0
    3. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
       
      salut,

      c'est juste "un peu plus correct". main() est une fonction, et elle ne prend aucun argument. Donc on écrit main(void) (void signifie "vide", "rien")


      mais la plupart des compilateurs C acceptent que tu écrives int main() au lieu de int main(void)

      si tu ne sais pas trop ce qu'est une fonction et des arguments, alors c'est pas grave.
      0
    4. keurdange Messages postés 816 Statut Membre 232
       
      Ok. mais pouvez vous aussi me dire pourquoi le mien (mon programme ci-haut affiché) n'affiche que le 1er nombre premier qu'il trouve?
      0