Urgent Langage C

Fermé
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 - 10 avril 2011 à 23:52
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 - 12 avril 2011 à 21:40
Bonjour,

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


2 réponses

keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 231
Modifié par keurdange le 11/04/2011 à 00:38
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
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 54
11 avril 2011 à 09:24
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
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 231
12 avril 2011 à 02:06
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
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 231
12 avril 2011 à 03:06
Ok, merci et ca marche. mais y a t-il une different entre main() et main(void)?
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
12 avril 2011 à 12:48
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
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 231
12 avril 2011 à 21:40
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