IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

erreurs de compilation sur des exercices


Sujet :

C

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Par défaut erreurs de compilation sur des exercices
    Bonsoir j'ai quelques exercices a faire et j'ai trouvé quelques difficultés , j'espere bien que vous pouvez m'aider .


    Exercice n°5

    Ecrire un programme C permettant d’afficher si un nombre positif, saisi au clavier, est pair ou impair. Le programme s’arrête dès qu’on introduit le chiffre 0 et refusera les valeurs négatives.
    Exemple d'exécution :
    Entrer un nombre positif : 4
    4 est pair
    Entrer un nombre positif : -5
    SVP entrer un nombre positif
    Entrer un nombre positif : 9
    9 est impair
    Entrer un nombre positif : 0
    ***Fin du programme***


    pour celui la j'ai pu le faire : s'il y a des erreurs merci de me les montrer
    ---------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #include<stdio.h>
    main()
    {
    	int a;
    	printf("entrez un nombre positif: \n"); scanf("%d",&a);
    	while (a!=0)
    	{
    		if (a<0)
    		{
    			printf("SVP entrez un nombre positive\n");
    			printf("entrez un nombre positif:\n "); scanf("%d",&a);
    		}
    		else if(a%2==0)
    		{	
    			printf("Ce Nombre est pair\n");
    			printf("entrez un nombre positif: \n"); scanf("%d",&a);
    		}
    		else
    		{
    			printf("Ce Nombre est impair\n");
    			printf("entrez un nombre positif: \n"); scanf("%d",&a);
    		};
    	};
    	printf("***fin du programme***");
    }
    -------------------------------------------------




    Exercice n°6

    Ecrire un programme C qui permet de saisir une liste de notes toutes comprises entre 0 et 20, de calculer et d’afficher leur moyenne. L’utilisateur est invité à saisir sa réponse (en répondant par oui : o/O, ou non : n/N ) à la question «voulez vous encore saisir une note».
    Exemple d'exécution :
    Introduire note 1 : 12
    Voulez vous encore saisir une note (o/O n/N) : a
    Désolé le caractère a n’est pas une réponse valide
    Voulez vous encore saisir une note (o/O n/N) : O
    Introduire note 2 : -5
    SVP entrer une note entre 0 et 20
    Introduire note 2 : 14
    Voulez vous encore saisir une note (o/O n/N) : o
    Introduire note 3 : 10
    Voulez vous encore saisir une note (o/O n/N) : N
    Moyenne de 3 notes = 12
    -----------------------------------------

    aussi pour celui la j'ai eu des erreurs merci de me les montrer

    Qui est ce que ça veut dire : expected `;' before "do" ?
    ----------------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    #include<stdio.h>
    #include<conio.h>
    main()
    {
    	int a,s,n;
    	float m;
    	char rep;
    	do
    	{
    		n++
    			do
    			{
    				printf("Introduire note %d :\n",n);scanf("%d",a);
    			}while((a>20)||(a<0));
    			s=s+a;
    			do
    			{
    				rep=getch();
    			}while(rep!="n","N","O","o");
    	}while((rep=="o")||(rep=="O"));
    	m=s/n
    		printf("la moyenne des %d notes est: %f",n,m)
    }
    --------------------------------------------------

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    J'ai remis en forme le code avec un outil d'indentation automatique, qui je pense fait bien ressortir l'erreur : il manque un ';' entre le n++ et le do (et à d'autres endroits).
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Par défaut
    Merci , mais j'ai eu un autre erreur : ISO C++ forbids comparison between pointer and integer a cette ligne



    }while(rep!="n","N","O","o");


    Pouvez vous m'aider ?

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while((rep!='n')&&(rep!='N')&& ...)
    et aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while((rep=='o')||(rep=='O'));

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Par défaut
    Merci , la compilation est correcte

    mais lorsque j’exécute juste je choisi la première valeur et après ça ne passe pas :'(

  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #include<stdio.h>
    #include<conio.h>
    main()
    {
    	int a,s=0,n=0;
    	float m;
    	char rep;
    	do
    	{
    		n++;
    		do
    		{
    			printf("Introduire note %d : ",n);
    			scanf("%d",&a);
    		}
    		while((a>20)||(a<0));
    		s=s+a;
    		printf("Autre note [o]ui / [n]on : ");
    		do
    		{
    			rep=getch();
    		} while((rep!='n')&&(rep!='N')&&(rep!='O')&&(rep!='o'));
    	} while((rep=='o')||(rep=='O'));
    	m=s/n;
    	printf("la moyenne des %d notes est: %f\n",n,m);
    }

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4
    Par défaut
    Merci beaucoup jlliagre,

    C'est gentil de votre part

    Mais en fait je peux pas savoir la moyenne , lorsque je tape N ou bien n le programme se ferme :'(

    il faut que le programme soit comme cet exemple la :

    Exemple d'exécution :

    Introduire note 1 : 12
    Voulez vous encore saisir une note (o/O n/N) : a
    Désolé le caractère a n’est pas une réponse valide
    Voulez vous encore saisir une note (o/O n/N) : O
    Introduire note 2 : -5
    SVP entrer une note entre 0 et 20
    Introduire note 2 : 14
    Voulez vous encore saisir une note (o/O n/N) : o
    Introduire note 3 : 10
    Voulez vous encore saisir une note (o/O n/N) : N
    Moyenne de 3 notes = 12


    Merci pour votre aide . ça sera trés trés gentil si tu m'aide a le terminer .

  8. #8
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    J'ai testé sous Mac OS (en enlevant conio.h et en utilisant getchar() ) et je peux taper 'n' sans soucis.

    Le problème est plutôt qu'on ne peut pas taper 'a' et comprendre ce qu'il se passe. En effet, le 2 do/while imbriqué n'affiche pas de message, il faut le rajouter en fonction de la réponse obtenue.

    Même remarque si la note n'est pas dans le bon intervalle.

    Scanf() n'est pas robuste si on entre du texte et non un nombre, mais pour un exercice de débutant, on peut comprendre. Il faut juste le savoir.

  9. #9
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Citation Envoyé par isabelle94 Voir le message
    Exercice n°5

    Ecrire un programme C permettant d’afficher si un nombre positif, saisi au clavier, est pair ou impair. Le programme s’arrête dès qu’on introduit le chiffre 0 et refusera les valeurs négatives.

    pour celui la j'ai pu le faire : s'il y a des erreurs merci de me les montrer
    En vrac :
    le type de main n'est pas bon.
    On ne lit pas les entrees clavier avec scanf. http://c.developpez.com/cours/
    else if: c'est autorise, mais je prefere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    else
    {
       if (...)
       {
          /* ... */
       }
    }
    Le type de retour de main etant int, il manque un return a la fin de ton code.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. Erreur de compilation sur une librairie en mode debug
    Par bakaneko dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/05/2006, 16h32
  2. Erreur de compilation sur std::string avec Dev C++
    Par dada57 dans le forum Dev-C++
    Réponses: 4
    Dernier message: 20/03/2006, 18h06
  3. Erreur de compilation sur gaim-vv avec gstrreamer
    Par ZiMo dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 30/12/2005, 10h41
  4. Erreur à la compile sur VC++ 6
    Par norwy dans le forum Développement
    Réponses: 1
    Dernier message: 10/11/2005, 13h51
  5. Delphi 7 update 1 - Erreur de compil sur SQLExpr
    Par RamDevTeam dans le forum Bases de données
    Réponses: 14
    Dernier message: 02/11/2005, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo