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 :

Probleme avec les variables locales


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    3e
    Inscrit en
    avril 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : 3e
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2018
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Probleme avec les variables locales
    Bonjour, j'essaie de faire une fonction pour creer un tableau et de le remplir et puis une fonction qui calcule le min et son indice, apres je veux les appeler a partie du main et afficher le resultat, mais ca ne marche pas voici mon code :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
     
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdbool.h>
     
    #define MAX 500
     
    	int tab[MAX];
    	int i = 0;
    	int x;
     
     
    //Écrire ici la fonction "remplir" de remplissage (par saisies au clavier)
    // d'un tableau t de taille nb 
     
     
    void remplir(float *tab, int nb){
     
    	float val;
    	int i;
     
    	for(i=0; i<nb; i++){
     
    	    printf("tab[%d]=",i);
    	    scanf("%f", &val);
    	    tab[i]=val;
     
    	}
    }
     
     
    //Écrire ici la fonction "calcule_min" qui calcule et renvoie en 
    // résultat le minimum des éléments d'un tableau t de taille size. Un
    // paramètre supplémentaire permettra de ramener également l'indice 
    // dans le tableau de ce minimum
    // ... 
     
     
     
     
    void calcule_min(float *tab, int size, float *min, int *indicemin){
     
     
    		*min = tab[0];
    		*indicemin = 0 ; 
    		int i=1;
     
    		while(i<size)
    		{
    			if(tab[i]<*min)
    			{
     
    				*min=tab[i];
    				*indicemin = i; 
     
    			}
     
    			i++;
    		}
     
    }
     
     
    // Compléter la fonction main :
    int main(int nbArgs, char* arg[])
    {
     
        float *tab;
        int n, indicemin;
        float min;
     
     
    	printf("Donner la taille du tableau : \n");
    	scanf("%d", &n);
     
     
     
        // Remplissage du tableau :
     
        tab = (float*)malloc(n*sizeof(float));
     
        remplir(tab, n);
     
        // calcule de min
     
        calcule_min(tab,nbArgs,&min,&indicemin);
        printf("minimum : %f | son indice : %d \n",min,indicemin);
     
     
        return EXIT_SUCCESS;
    }

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    février 2008
    Messages
    2 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : février 2008
    Messages : 2 085
    Points : 4 055
    Points
    4 055
    Billets dans le blog
    4
    Par défaut
    Bonjour.

    À quoi servent les lignes 10, 11 et 12 ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int tab[MAX];
    int i = 0;
    int x;
    tab[] est déclaré localement dans main ();. Pourquoi vouloir aussi déclarer un tableau du même nom en global ? Idem pour i et x...
    Utilisation de Glade avec Gtk+ - N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    décembre 2015
    Messages
    989
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : décembre 2015
    Messages : 989
    Points : 4 997
    Points
    4 997
    Par défaut
    Bonjour,

    Il y a en effet des lignes en trop surement dues à des évolutions.
    Mais surtout, il reste ligne 88 un second argument qui devrait être n à la place de nbArgs.
    Savoir se relire est une des choses les plus importantes en programmation.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    3e
    Inscrit en
    avril 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : 3e
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2018
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    Bonjour.

    À quoi servent les lignes 10, 11 et 12 ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int tab[MAX];
    int i = 0;
    int x;
    tab[] est déclaré localement dans main ();. Pourquoi vouloir aussi déclarer un tableau du même nom en global ? Idem pour i et x...

    Ok mais ça devrait pas poser pb le pb c’est dans les vars locales je perds leurs valeurs en appelans la fonction calcule_min

  5. #5
    Membre éprouvé Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2011
    Messages
    407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2011
    Messages : 407
    Points : 947
    Points
    947
    Par défaut
    Hello,

    Ce que veut dire dalfab, c'est que ligne 88, le second argument de l'appel à la fonction doit être le nombre d'éléments du tableau, c'est à dire n. nbArgs quant à lui est le nombre d'arguments passés au programme.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    3e
    Inscrit en
    avril 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : 3e
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2018
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par dalfab Voir le message
    Bonjour,

    Il y a en effet des lignes en trop surement dues à des évolutions.
    Mais surtout, il reste ligne 88 un second argument qui devrait être n à la place de nbArgs.
    Savoir se relire est une des choses les plus importantes en programmation.
    j'etais sur mon tel il m'affichait pas la bonne ligne... sinon c'est bon maintenant merci pour votre réponse!

Discussions similaires

  1. Probleme avec les variables d'environnement
    Par top_eagle dans le forum Windows XP
    Réponses: 1
    Dernier message: 26/01/2009, 15h13
  2. Probleme avec les variables d'environnement
    Par top_eagle dans le forum Administration système
    Réponses: 3
    Dernier message: 26/01/2009, 15h10
  3. [PHP-JS] probleme avec les variable dans javascript
    Par aminobobo dans le forum Langage
    Réponses: 3
    Dernier message: 22/07/2008, 12h02
  4. Probleme avec les variables du Settings
    Par Lafab dans le forum C#
    Réponses: 4
    Dernier message: 29/06/2007, 14h16
  5. Probleme avec les variables de session en ASP
    Par alhc2666 dans le forum ASP
    Réponses: 1
    Dernier message: 07/03/2006, 16h19

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