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

  1. #1
    Nouveau Candidat au Club
    fonction qui renvoit la val max et min d'un tableau
    bonjour je dois écrire une fonction qui me renvoit la valeur max et min d'un tableau et j'ai fait ceci , je sais pas ce qui est faux car ça ne marche pas .

    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
    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
    #include <assert.h>
    #include "main.h"
     
    #define ARRAY_SIZE (10)
    #define ARRAY_MIN (0)
    #define ARRAY_MAX (9)
    int main() {
    	int array[ARRAY_SIZE]; ///< Array all the functions will work with
    	unsigned int rand_seed; ///< seed to generate random values from
    	rand_seed = time(0); // current timE 
    	printf("random seed = %u", rand_seed);
    	srand(rand_seed);
    	andom_array(array ,ARRAY_SIZE, ARRAY_MIN, ARRAY_MAX);
    	return 0;
    }
    void random_array(int array[], int array_size, int min, int  max)
    {
    	int i;    // limits are included in the range
    	unsigned int rand_range = max + 1 - min;    // assert() exits the program if the condition is not verified
    	assert(rand_range > 0);
    	for (i = 0; i < array_size; i++)
    	{
    		array[i] = (rand() % rand_range) + min;
    	}
    }
     
     
    void valmaxmin (int array[], int array_size) {
    	int min;
    	int max;
    	int Imin = 0;
    	int Imax = 0;
    	max = array[0];
    	min = array[0];
    	int i;
     
    	for (i = 0; i < array_size; i++)
    	{
    		if (array[i] >= max) {
    		Imax = i;
    		max = array[i];
    		} else {
    			if (array[i] <= min) {
    				Imin = i;
    				min = array[i];
    			}
    		}
    	}
    	for (i = 0; i < array_size;i++){
    		assert (array[i]<=array[Imax]);
    		assert (array[i]>=array[Imin]);
    	}
    	printf("position du min : %d\n",Imin);
    	printf("position du max : %d\n",Imax);
    	printf("valeur du min : %d\n",array[Imin]);
    	printf("valeur du max :%d\n",array[Imax]);
    }

  2. #2
    Rédacteur/Modérateur

    C'est fou de perdre du temps à faire une capture d'écran, puis découper une image, pour enfin l'uploader, alors que copier/coller du texte prend 1/2s.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Nouveau Candidat au Club
    c'est juste que j'avais juste les captures sur moi et as le code mais bon merci pour la remarque .

  4. #4
    Rédacteur/Modérateur

    Et le problème est ?
    Le code semble correct, quelle que soit son origine.
    Mais pour savoir si une fonction marche ou non, faudrait au minimum l'appeler.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Expert éminent sénior
    Bonjour
    Citation Envoyé par mariael Voir le message
    bonjour je dois écrire une fonction qui me renvoit la valeur max et min d'un tableau et j'ai fait ceci , je sais pas ce qui est faux car ça ne marche pas
    Code c :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    void valmaxmin (int array[], int array_size) {
    	...
    }
    Une fonction qui renvoie (avec un "e" car c'est une conjugaison du verbe "renvoyer" et non du verbe "renvoir") quelque chose doit alors réellement "renvoyer" ce quelque chose. Donc ne peut pas être void et doit comporter au minimum un return qqchose. Sinon effectivement ça ne pourra pas marcher.

    Et cela amène un autre souci car en C, une fonction ne peut renvoyer qu'un seul truc. Or "valeur min et max" ce sont deux trucs (valeur min et valeur max). Donc il faudra tout d'abord stocker ces deux valeurs dans un élément capable de stocker plusieurs valeurs (un tableau, une structure) et renvoyer cet élément.

    Ou alors tu confonds les verbes "renvoyer" et "afficher" ce qui est dommage quand on pose une question sur un forum de prog car ceux à qui tu t'adresses, eux, ne les confondent pas
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

###raw>template_hook.ano_emploi###