Matrice_fonction
serina_ker
Messages postés
9
Statut
Membre
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
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)
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
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,
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,
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>
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>
#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; } } } }