Corrigez moi un prog en C SVP

Fermé
mia - 17 févr. 2006 à 14:33
 mia - 20 févr. 2006 à 18:26
svp mes amis je ce programme ne veut pas se compiler il me parait juste mais li y a des erreurs que je n'arrive pas a les retrouver.
le programme est sur les matrices son but est de trouver les points-cols.

#include<stdio.h>
main()
{
int a[n][m];
int max[n][m];
int min[n][m];
int i,j,inf,sup;
printf("donnez le nombre des lignes\n");
scanf("%d",&n);
printf("donnez le nombre des colonnes\n");
scanf("%d",&m);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf("%d",&a[i,j]);
}
}
for(i=1;i<=n;i++)
{
sup=a[i,1];
for(j=2;j<=m;j++)
{
if(sup<a[i,j])
sup=a[i,j];
}
for(j=1;j<=m;j++)
{
if(sup=a[i,j])
max[i,j]=sup;
else
max[i,j]=0;
}
for(j=1;j<=m;j++)
{
inf=a[1,j];
for(i=2;i<=n,i++)
{
if(inf>a[i,j])
inf==a[i,j];
}
for(i=1;i>=n)
{
if(inf==a[i,j])
min[i,j]=inf
else
min[i,j]=0;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(max[i,j]=min[i,j])
{
printf("le point-cols est\n"a[i,j]);
printf("le point-cols est sur la ligne %d\n",i);
printf("le point-cols est dans la colonne %d\n",j);
else
printf("cette matrice ne contient pas de point-cols");
}
}
}

4 réponses

nauno Messages postés 342 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 14 mai 2009 60
17 févr. 2006 à 14:46
et c'est koi ces erreurs???
il te met koi le compilateur???
0
c'est la premiére que je fais une programmatio des matrices.
il m'ecrit que j'ai des erreurs dans les deux premiéres lignes quand je l'ai compiler dans le borlandes.
et quand je l'ai compiler dans l'iux il me dit que j'ai des fautes dans la declarations des matrices(7 erreurs dans les premiére lignes) et je n'arrive pas a les corriger.
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
17 févr. 2006 à 16:02
int a[n][m];
int max[n][m];
int min[n][m];


Tu ne peux pas déclarer un tableau en désignant le nombre de ses index avec des variables. Il faut impérativement utiliser des constantes.
Exemple:

int a[5][4]

A moins d'utiliser des tableaux dynamiques....
0
mia > kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016
17 févr. 2006 à 18:11
j'ai essayer mais ça n'as pas marcher essayes le chez toi STP car je pense que le probléme est dans mon ordinateur
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527 > kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016
18 févr. 2006 à 05:30
Mais le soucis c'est qu'il faut que tu prévoies un tableau plus grand que ce qui sera demandé.
Puis pour le nombre de lignes et colonnes demandées, tu saisis ce que l'utilisateur rentre.

Il faut que tu déclares n et m (qui sobnt utilisés avant d'êtres déclarés).
Et il manque un point virgule là:

min[i,j]=inf

Il manque aussi des fermetures d'accolades j'ai l'impression.
Utilise les balises code sur ce forum pour placer ton code, comme ça tu pourras y mettre des tabulations pour les blocs de if et for etc.... Ton code n'est pas indenté, et c'est difficile à lire comme ça.

Prend aussi l'habitude de donner un type précis à tes fonctions et variables.
La fonction main() est de type int. Il faut donc la décrire comme ça (en résumé. Je te passe les arguments de cette fonction, tu n'en as pas besoin ici):

int main()
{
               //Patati patata
}


Pour le coup, elle devra retourner une valeur entière (généralement 0. Donc il suffit de mettre un
return 0;
à la fin du bloc de cette fonction.)
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527 > kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016
18 févr. 2006 à 05:38
car je pense que le probléme est dans mon ordinateur

C'est ce qu'on dit tous quand on apprend le C ;-)
0
a mon avis il te manque les bibliotheques: #include<iostream.h>
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
18 févr. 2006 à 05:32
Salut,

Pas besoin, mia utilise printf et scanf qui sont des fonctions de la bibliothèque standard stdio.h
iostream c'est pour le C++ quand on utilise la classe std avec cout et cin par exemple.
0
mia > kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016
19 févr. 2006 à 19:57
j'ai tout essayé et voici les modifications que j'ai fait sur le pogramme mais........
merci d'avance


#include<stdio.h>
main()
{
int a[100][100];
int max[100][100];
int min[100][100];
int i,j,inf,sup;
printf("donnez le nombre des lignes\n");
scanf("%d",&n);
printf("donnez le nombre des colonnes\n");
scanf("%d",&m);
for(i=0,i<=n;i++)
{
for(j=0,j<=m;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0,i<=n;i++)
{
sup=a[i][1];
for(j=1,j<=m;j++)
{
if(sup<a[i][j])
sup=a[i][j];
}
for(j=0,j<=m;j++)
{
if(sup=a[i][j])
max[i][j]=sup;
else
max[i][j]=0;
}
for(j=0,j<=m;j++)
{
inf=a[0][j];
for(i=1,i<=n;i++)
{
if(inf>a[i][j])
inf=a[i][j];
}
for(i=0,i>=n;i++)
{
if(inf=a[i,j])
min[i][j]=inf
else
min[i][j]=0;
}
for(i=0,i<=n;i++)
{
for(j=0,j<=m;j++)
{
if(max[i][j]=min[i,j])
{
printf("le point-cols est\n",a[i,j]);
printf("le point-cols est sur la ligne %d\n",i);
printf("le point-cols est dans la colonne %d\n",j);
else
printf("cette matrice ne contient pas de point-cols");
}
}
}

meci kilian
0
mia > kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016
19 févr. 2006 à 20:09
#include<stdio.h> 

main()
{
int a[100][100];
int max[100][100];
int min[100][100];
int i,j,inf,sup;
printf("donnez le nombre des lignes\n");
scanf("%d",&n);
printf("donnez le nombre des colonnes\n");
scanf("%d",&m);
for(i=0,i<=n;i++)
{
for(j=0,j<=m;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0,i<=n;i++)
{
sup=a[i][1];
for(j=1,j<=m;j++)
{
if(sup<a[i][j])
sup=a[i][j];
}
for(j=0,j<=m;j++)
{
if(sup=a[i][j])
max[i][j]=sup;
else
max[i][j]=0;
}
for(j=0,j<=m;j++)
{
inf=a[0][j];
for(i=1,i<=n;i++)
{
if(inf>a[i][j])
inf=a[i][j];
}
for(i=0,i>=n;i++)
{
if(inf=a[i,j])
min[i][j]=inf
else
min[i][j]=0;
}
for(i=0,i<=n;i++)
{
for(j=0,j<=m;j++)
{
if(max[i][j]=min[i,j])
{
printf("le point-cols est\n",a[i,j]);
printf("le point-cols est sur la ligne %d\n",i);
printf("le point-cols est dans la colonne %d\n",j);
else
printf("cette matrice ne contient pas de point-cols");
}
}
}


    
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527 > kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016
19 févr. 2006 à 23:16
n et m ne sont toujours pas déclarés avant d'être utilisés.
Il faut mettre ceci au début:
int n,m;

Tu n'as pas mis d'espaces entre include et <stdio.h>
Et il ya des erreurs de syntaxe par ci par là. Pense à lire les messages de ton compilateur.

Et pense à encadrer ton code avec les balise code sur ce forum pour que ça soit lisible.
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
19 févr. 2006 à 21:33
tiens j'ai trouvé la solution de ton problème de point col :

http://www.ltam.lu/Tutoriel_Ansi_C/solex77.htm

je sais pas si ca peut t'aider à comprendre tes erreurs mais si tu as des questions sur ce code pose les.
0
merci beaucoup beaucoup....... les amis je suis reconnaissante.
j'ai trouver mes erreurs
@ + + + + + + + +
0