Matrice_fonction

serina_ker Messages postés 9 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
SVP aidez moi pour résoudre cet exercice c'est trés uegrent

soit T un tableau de n lignes et m colonnes.
le problème de l'élément majoritaire consiste à determiner s'il exist une valeur x de T, telle que le nombre de {T[i][j]=x} soit supérieur à n*m/2

partie 1:manipulation des matrices:

ecrire un programme c qui:
1- lit une matrice de dimension n*m;
2-affiche l'élément majoritaire s'ilexiste avec le nombre exact de son apparition, dans le cas contraire on affiche le message "élément majoritaire inexistant!".
3-améliorer votre programme en réduisant l'espace de recherche. expliquer.

partie 2: manipulation des fonction
dans le but de bien structurer le programme, nous allons le décomposer sous programmes et ceci en utilisant les fonctions qui permettent de:
1-lire la matrice T,(lire);
2-détrmoner si T admet un élément majoritaire ou non et envoie la réponse (oui/non), (majoritaire);
3-améliorer le résultat, en faisant appel à lafonction majoritaire, pour afficher l'élément majoritaire s'il exist , et le message "élément majoritaire inexistant!" dans le cas contraire,(améliorer)
4-réafficher la matrice T, (écrire)

2 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Bonjour,

    Pour quoi avoir enlever le "Bonjour" mis automatiquement ?
    Urgent ? C'est pour quand ?

    Enfin, tu t'es contenté de recopier ton exercice... Pour espérer obtenir de l'aide, il faut montrer patte blanche :-) Autrement dit, il faut que tu nous dises ce que tu as commencé à faire (idéalement, tu peux poster ton début de code), que tu nous dises là où tu bloques, et ce que tu n'as pas compris.

    Cordialement,
    0
    1. serina_ker Messages postés 9 Statut Membre
       
      fiddy brèf je veux la solution psq j'ai rien compris , je ne sais pas comment je commence....!!!!!!
      0
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      CCM n'a pas vocation à fournir les solutions. Mais on peut t'aider à faire si tu veux. Dans ce cas, réponds au 1er post.
      0
    3. serina_ker Messages postés 9 Statut Membre
       
      regarde s'q j'ai fait pour la fct lire et majoritaire


      #include<stdio.h>
      #include<stdlib.h>
       int lire_T(int T[][],int n,int m,int i,int j)
      {
        
        for(i=0;i<n;i++)
        {
         for(j=0;j<m;j++)
         {
          scanf("%d",&T[i][j]);
         }
         
        }
        int majoritaire(int x,)
        {
         int l,x,i,j,nb;
         l=(n*m)/2;
         nb=0;
         scanf("%d",&x);
         while(T[i][j]=x)
         {
          nb=nb+1;
          if(nb<l)
          {
          return (x)
          else 
          return 0;
          }
         }
         
        }
       }
      0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    int lire_T(int T[][],int n,int m,int i,int j)
    Il faut préciser la 2ème dimension de ta matrice a minima : int T[][TAILLE] (remplace TAILLE par le nombre de colonnes).

    N'envoie pas i et j en paramètre. Il s'agit de variables locales.
    IL ne faut pas oublier de renvoyer une variable (return ...;) puisque ta fonction retourne un int. Ou alors, tu mets void lire_T(...)

    int majoritaire(int x,)
    Tu as une virgule en trop.
    l=(n*m)/2;
    Que vaut n et m ?
    while(T[i][j]=x)
    i et j sont non initialisés. De plus, l'opérateur de comparaison en C est == et non =.

    return (x)
    Il manque un ; et une accolade fermant (pour fermer le if)

    Ensuite je te conseille de revérifier le nombre d'accolades.

    N'oublie pas la prochaine fois d'utiliser la balise <code c>ici tu mets ton code</code>
    0