Matrice_fonction

Fermé
serina_ker Messages postés 7 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 24 mai 2015 - 6 mai 2015 à 20:21
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 7 mai 2015 à 23:23
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

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
7 mai 2015 à 00:08
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
serina_ker Messages postés 7 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 24 mai 2015
7 mai 2015 à 19:38
fiddy brèf je veux la solution psq j'ai rien compris , je ne sais pas comment je commence....!!!!!!
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
7 mai 2015 à 19:57
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
serina_ker Messages postés 7 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 24 mai 2015
Modifié par baladur13 le 24/05/2015 à 18:33
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
7 mai 2015 à 23:23
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