utilisation d'un "if" en c
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

utilisation d'un "if" en c



  1. #1
    physiquantique

    utilisation d'un "if" en c


    ------

    Bonjour ,
    Suite à une migration (difficile pour l'instant) de l'univers Windows et son chargement language visual basic vers l'univers Ubuntu et une programmation C (à l'aide d'Emacs et de la commande gcc sur le terminal) , j'aurais une question à vous poser : j'essaye d'écrire un programme qui teste (pour l'instant de manière brute) si un nombre est premier . Pour cela j'écris une fonction :

    Code:
    int premier(int p)
    {
      int j = 2;
      int t = 0;
      
      while(j<p)
        {
          if(p%j = 0)
    	{
    	  t=t+1;
    	}
          j=j+1;
        }
      if (t>0)
        {
          return 0;
        }
      else
        {
          return 1;
        }
    }
    Lorsque je compile mon programme avec gcc j'obtient l'erreur : "dans la fonction premier , dans 'if (p%j =0) , valeur attendue pour l'expression de gauche" (traduit en français) . Pourtant p est la variable argument de la fonction , et j est déclarée . J'ai même essayer de remplacer ce if par un 'if(2=0)' et la même erreur apparait .
    Est-ce une mauvaise utilisation du if ?

    Autre question : Le passage du visual basic au C est il dur ?

    Merci d'avance .

    -----
    vivons avec légerté

  2. #2
    Calvert

    Re : utilisation d'un "if" en c

    Salut !

    Dans (beaucoup de) langages de programmation, les tests logiques mettant en jeu une égalité s'écrivent avec deux signes =, le signe = seul étant réservé à l'affectation des variables. Il faut donc écrire if (p%j == 0). Voir par exemple ici.

  3. #3
    bisou10

    Re : utilisation d'un "if" en c

    Je veux pas te rendre dingue mais tu devrais passer au C++ (avec Code::Blocks) ou au Java (avec Eclipse ou Netbeans) voire à Vala (dans l'ordre du moins facile au plus agréable).

    Tu passes d'un RAD à un language plutot bas niveau.

    Le C est universel, mais si tu as le choix, ca te semblera moins 'violent'.

  4. #4
    physiquantique

    Re : utilisation d'un "if" en c

    Merci pour vos réponses .
    Autre petite question(un peu HS mais je vais pas créer un post juste pour ça) : j'ai installé ubuntu avec un cd , tout va bien sauf que quand je démarre l'ordi j'ai pas le choix de l'OS , il démarre tout seul ubuntu . Comment je dois faire pour avoir le choix entre les deux OS au démarrage ? Merci d'avance .
    vivons avec légerté

  5. A voir en vidéo sur Futura
  6. #5
    bisou10

    Re : utilisation d'un "if" en c

    Il te faut reconfigurer GRUB pour qu'il prenne en compte le second OS.

    Problème: il est censé faire ca tout seul !

    update-grub

  7. #6
    physiquantique

    Re : utilisation d'un "if" en c

    Merci.

    dernière petite question et après on prend l'air (ou l'eau ça dépend ...) : mon programme marche maintenant plutot bien mais j'aimerais à présent obtenir une liste des nombres premiers obtenus et l'afficher sous forme d'une unique chaine de caractère "nb1;nb1;..." .
    j'essaye donc de faire comme ceci :
    Code:
    char main()
    {
      int i =3;
      while (i<100)
        {
          test =	premier(i);
          if (test == 1) 
    	{
    	  sprintf(temp,"%d",i);
    	 liste = strcat(liste,temp);
    	}
          i = i+1;
        }
      
      printf("premiers: %s \n",liste);
      return 0;
    }
    Mais mon joli petit terminal me répond : "impossible d'assigner char[1] a partir du type char *" .
    Pas compris ...

    J'ai l'impression qu ça a rapport avec les pointeurs , et que je n'ai jamais utilisé de pointeur en vb (ou alors sans m'en rendre compte) .

    Merci d'avance Et bonne soirée .
    vivons avec légerté

  8. #7
    minushabens

    Re : utilisation d'un "if" en c

    Quel est l'intérêt de créer une longue chaîne de caractères avant de l'imprimer puisque de toutes façons printf fait ça?

  9. #8
    fred1599

    Re : utilisation d'un "if" en c

    Tu devrais te tourner vers gambas, assez proche du visual Basic, dans le sens où il sera possible d'importer tes projets VB en gambas.

  10. #9
    albanxiii
    Modérateur

    Re : utilisation d'un "if" en c

    Bonjour,

    Citation Envoyé par physiquantique Voir le message
    Mais mon joli petit terminal me répond : "impossible d'assigner char[1] a partir du type char *" .
    Comment est déclarée votre variable "liste" ?

    Sinon, si vous n'affichez que les nombres premiers sous forme de liste à l'écran, vous pouvez faire quelque chose du genre

    Code:
    printf( "premiers : "); /* remarquez l'absence de "\n" à la fin. Le prochain printf continuera sur la même ligne */
    while (i<100 )
    {
      /* vos calculs ici */
      printf( "%d ; ", i );
    }
    printf( "\n" );
    Après, vous pouvez vous amuser à gérer le dernier passage dans la boucle while pour ne pas avoir de "; " en fin de liste.

    @+
    Not only is it not right, it's not even wrong!

  11. #10
    Paraboloide_Hyperbolique

    Re : utilisation d'un "if" en c

    Bonsoir,

    Citation Envoyé par physiquantique Voir le message
    Merci pour vos réponses .
    Autre petite question(un peu HS mais je vais pas créer un post juste pour ça) : j'ai installé ubuntu avec un cd , tout va bien sauf que quand je démarre l'ordi j'ai pas le choix de l'OS , il démarre tout seul ubuntu . Comment je dois faire pour avoir le choix entre les deux OS au démarrage ? Merci d'avance .
    A ce propos, "boot-repair" (http://doc.ubuntu-fr.org/boot-repair) est un outil pratique qui m'a réglé pas mal de problèmes de démarrages.

Discussions similaires

  1. "fondamentales", "dures", "molles" ... : comment classer les sciences ?
    Par Arvirik dans le forum Epistémologie et Logique (archives)
    Réponses: 13
    Dernier message: 22/04/2017, 22h41
  2. Différences entre "assertion", "proposition", "théorème", ...
    Par invite91d9a212 dans le forum Epistémologie et Logique (archives)
    Réponses: 11
    Dernier message: 25/02/2010, 04h35