Problème affichage code

Résolu/Fermé
ScaRed - Modifié le 1 déc. 2022 à 14:08
mamiemando Messages postés 33433 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 décembre 2024 - 1 déc. 2022 à 14:16

Bonjour,

J'ai réalise ce code mais j'ai eu un soucis pour afficher le nombre de lignes et colonnes souhaitées, le programme me renvoie des entiers totalement différents.

J'aimerai bien qu'on me guide, merci ?

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int Lire_Entier();

#define VMIN 5
#define VMAX 30

void main(){    
    int nlig, ncol;
    printf("*****Bienvenue dans le jeu*****\n\n");
    printf("Paramètres du jeu :\n");    
    nlig == Lire_Entier();
    ncol == Lire_Entier();
    printf("\n%d lignes pour %d colonnes\n", nlig, ncol);
}

int Lire_Entier(){
    // saisie d'un nombre compris entre VMIN ET VMAX      //
    int n = 0;
    printf("Entrez un nombre compris entre 5 et 30 :");    
    scanf("%d", &n);
    while (n < VMIN || n > VMAX)
    {
        printf("Veuillez recommencez avec un nombre compris entre 5 et 30 :");
        scanf("%d", &n);
    }
    return n;
}
A voir également:

1 réponse

mamiemando Messages postés 33433 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 décembre 2024 7 809
1 déc. 2022 à 14:16

Bonjour,

L'opérateur == sert à comparer deux valeurs, alors que dans ton cas, tu veux affecter le résultat de Lire_entier à tes variables. C'est donc l'opérateur = que tu dois utiliser.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int Lire_Entier();

#define VMIN 5
#define VMAX 30

void main(){
    int nlig, ncol;
    printf("*****Bienvenue dans le jeu*****\n\n");
    printf("Paramètres du jeu :\n");
    nlig = Lire_Entier();
    ncol = Lire_Entier();
    printf("\n%d lignes pour %d colonnes\n", nlig, ncol);
}

int Lire_Entier(){
    // saisie d'un nombre compris entre VMIN ET VMAX      //
    int n = 0;
    printf("Entrez un nombre compris entre 5 et 30 :");
    scanf("%d", &n);
    while (n < VMIN || n > VMAX)
    {
        printf("Veuillez recommencez avec un nombre compris entre 5 et 30 :");
        scanf("%d", &n);
    }
    return n;
}

Résultat : 

(mando@silk) (~) $ gcc toto.c  && ./a.out 
*****Bienvenue dans le jeu*****

Paramètres du jeu :
Entrez un nombre compris entre 5 et 30 :5
Entrez un nombre compris entre 5 et 30 :10

5 lignes pour 10 colonnes

Petite recommandation : au lieu de Lire_entier, les conventions du C font qu'on écrirait plutôt lire_entier ou lireEntier. Généralement c'est plutôt la première convention qui est adoptée en C, la deuxième étant fréquente en Java et commune en C++. Les majuscules sont généralement réservées aux classes (en C++, par exemple class MaClasse) ou aux constantes / #defines (comme VMIN dans ton code).

Bonne chance

0