Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MIN-MAX D'UNE MATRICE


Information sur la source

Catégorie :Maths & Algorithmes Classé sous : min, max, matrice Niveau : Débutant Date de création : 28/03/2008 Date de mise à jour : 31/03/2008 23:49:24 Vu : 3 153

Note :
Aucune note

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Description

Etant donné une matrice A on dit qu'un couple d'indices (p,q) représente un min-max de cette matrice si Ap,q est un min de la ligne p et un max de la colonne q .Ce programme permet de trouver le minimum de la ligne p et en mémoriser les numéros de la colonne et pour chacun de ces rangs q, déterminer si Ap,q est un maximum pour sa colonne
 

Source

  • #include <stdio.h>
  • #include <stdlib.h>
  • void minmax(int mat[][],int,int);
  • int main()
  • {
  • int m[40][40],l,c,i,j;
  • printf("Nombre de ligne : ");
  • scanf("%d",&l);
  • printf("Nombre de colonne : ");
  • scanf("%d",&c);
  • for(i=0;i<l;i++)
  • {
  • for(j=0;j<c;j++)
  • {
  • printf("\nValeur ligne %d colonne %d : ",i+1,j+1);
  • scanf("%d",&m[i][j]);
  • }
  • }
  • system("cls");
  • minmax(m,l,c);
  • return 0;
  • }
  • void minmax(int mat[40][40],int lg,int cl)
  • {
  • int p,z=1;
  • int t,j,num,i,s;
  • p=0;
  • do
  • {
  • t=mat[p][0];
  • /*Recherche du minimun */
  • for(j=1;j<cl;j++)
  • {
  • if(t>mat[p][j])
  • {
  • t=mat[p][j];
  • num=j;
  • }
  • }
  • s=1;
  • /*Verifier si t est un maximun pour sa colonne*/
  • for(i=0;i<lg;i++)
  • {
  • j=num;
  • if(t>mat[i][j])
  • s++;
  • }
  • if(s>(lg-1))
  • {
  • printf("\n(%d,%d) est min-max et sa valeur est %d",p+1,num+1,t);
  • }
  • else
  • {
  • z++;
  • }
  • p++;
  • }
  • while(p<lg);
  • if(z>lg)
  • {
  • printf("\nPas de min-max ");
  • }
  • }
#include <stdio.h>
#include <stdlib.h>

void minmax(int mat[][],int,int);


int main()
{
    int m[40][40],l,c,i,j;
	printf("Nombre de ligne : ");
	scanf("%d",&l);
	printf("Nombre de colonne : ");
	scanf("%d",&c);
	for(i=0;i<l;i++)
     {
       for(j=0;j<c;j++)
        {
          printf("\nValeur ligne %d colonne %d : ",i+1,j+1);
          scanf("%d",&m[i][j]);
        }
     }
    system("cls");
    minmax(m,l,c);
    return 0;
}


void minmax(int mat[40][40],int lg,int cl)
{
   int  p,z=1;
   int  t,j,num,i,s;
    p=0;

    do
     {

       t=mat[p][0];
             /*Recherche du minimun */
      for(j=1;j<cl;j++)
      {
       if(t>mat[p][j])
        {
         t=mat[p][j];
         num=j;
        }
       }
       s=1;
       /*Verifier si t est un maximun pour sa colonne*/
      for(i=0;i<lg;i++)
	 {
	   j=num;
      if(t>mat[i][j])
       s++;
	 }
	if(s>(lg-1))
      {
        printf("\n(%d,%d) est min-max et sa valeur est %d",p+1,num+1,t);
      }
	else
      {
          z++;
      }
       p++;
     }
    while(p<lg);
    if(z>lg)
     {
       printf("\nPas de min-max  ");
     }
}

Historique

30 mars 2008 00:01:55 :
Code erroné
30 mars 2008 00:47:42 :
code erroné
30 mars 2008 03:31:22 :
code erroné
30 mars 2008 03:35:10 :
brrr
30 mars 2008 03:43:32 :
.
31 mars 2008 23:48:42 :
vecchio
31 mars 2008 23:49:24 :
vecchio

Commentaires et avis

signaler à un administrateur
Commentaire de f_l_a_s_h_b_a_c_k le 29/03/2008 17:32:18

printf("\nEntrez le nombre de lignes de la matrice : ");
scanf("%d",&ligne);


Dit moi quesque qui arrive si je rentre 200 ici?

signaler à un administrateur
Commentaire de vecchio56 le 29/03/2008 17:44:00 administrateur CS

En plus un code écrit comme ca n'a aucun intérêt : tout est dans le main, donc si on veut réutiliser ton algo (je ne vois pas pourquoi, mais admettons), on est obligé de tout refaire (en général, quand on donne un algo, on l'externalise dans une fonction, ce qui permet de bien voir ce qu'il prend en entrée et ce qu'il retourne, et surtout ce qui permet de le réutiliser).

printf("\n(%d,%d) est min-max",1,c+1);
Ca c'est pas très malin, pourquoi ne pas écrire ca?
printf("\n(1,%d) est min-max",c+1);

Bizarrement, j'ai l'impression que ton code est le premier sur ce sujet. Merci donc d'effectuer les améliorations nécessaires pour qu'on puisse le garder.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Min-Max d'une matrice [ par Bigthune ] J'ai une matrice A[l][c],je veux  trouver les minima pour chaque ligne p de la matrice et en mémoriser les numeros de colonne puis pour chacun des ran Problème de compilation [ par xkamen ] Bonjour,Dans la portion de code qui suit, lors de la compilation, j'ai le message d'erreur : C2078: initialiseurs trop nombreuxC2440: 'initialisation' Problème pour générer des nombres aléatoires [ par Etoiline ] Hello !Voilou je suis débutante en c++. Je dois faire un jeu de yams mais j'ai un problème : pour le premier lancer de dé tout va bien mais pour le se Problème tri d'un vecteur [ par Etoiline ] Voilà j'ai un petit problème j'arrive pas à trier mon vecteur (selon un ordre croissant)Voilà un bout de mon algo donc si vous pouviez m'aider svp.... valeur max et min [ par devamos ] bonjour,J'aimerais bien s'il vous plait savoir comment rediger un prog qui donne la valeur maximal et minimal d'un tableau donnée.et merci. fonction min max [ par devamos ] bonjour,j'aimerais des corrections,si vous pouvez m'aider j'ai ecri ces instructions en devc++,,, c'est une fonction qui cherche le max et le min dans [TABLEAUX 2D] comment passer un tableau 2D dans une fonction ? [ par Zenith ] bonjour, je suis novice en C, et je voudrais passer un tableau 2D dans une fonction.le but de mon programme est de générer 6 combinaisons de 6 entiers rotation d'une image [ par bizibiz17 ] bonjour en fait j'ai un petit pb, je dois rendre en devoir demain et il me reste une petite question que je n'arrive pas &#224; r&#233;soudre. j'ai d bug d'execution pour ecrire dans un fichier en C [ par sebtheboss4 ] Bonjour, je suis encore un novice en C, voici un petit programme qui fait rien de très durs. Je souhaite enregistrer une phrase lors de la compilation passage en mode graphique turbo c [ par jsuititidu27 ] bonjour à tous, j'ai découvert le turbo C et j'ai un exo à résoudre, voilà :tracer une fonction f(x). on entre les réels a et b sur lequel on va trace


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.