Suppression d'un intervalle (de lignes) dans une matrice
logout02
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour donc voila j'ai un petit problème c'est je suis encore débutant dans la programmation je voudrais savoir si on me donne un intervalle de (2+) lignes a supprimé d'une matrice qu'est ce que je dois faire ? parce que la j'ai toute essayé et j"ai rien trouvé voila ma solution (ça marche pas correctement) merci de m'aidé le plus tôt possible :D
Solution :
#include <stdio.h>
void main()
{
int c, s, i , j , n ,b ,h ,o, md [100][5] , jps , mps, aps,hps , hfps , js , ms , as , hs ,hfs , k;
printf("donner n");
scanf("%d",&n);
b=1;
for (i=0;i<n;i++)
{
for (j=0;j<5;j++)
{
md[i][j]=b;
b=b+1;
}
}
for (i=0;i<n;i++)
{
for (j=0;j<5;j++)
{
printf ("%d \t",md[i][j]);
}
printf("\n");
}
printf("donner le jour");
scanf("%d",&js);
printf("donner le mois");
scanf("%d",&ms);
printf("donner l'annee");
scanf("%d",&as);
printf("donner l'heure");
scanf("%d",&hs);
printf("donner l'heure fin");
scanf("%d",&hfs);
printf("donner le jour p");
scanf("%d",&jps);
printf("donner le moisp");
scanf("%d",&mps);
printf("donner l'anneep");
scanf("%d",&aps);
printf("donner l'heurep");
scanf("%d",&hps);
printf("donner l'heure finp");
scanf("%d",&hfps);
for (i=0;i<n;i++)
{
j=0;
if (md[i][j]==js && md[i][j+1]==ms && md[i][j+2]==as && md[i][j+3]==hs && md[i][j+4]==hfs )
{c=i;}
if (md[i][j]==jps && md[i][j+1]==mps && md[i][j+2]==aps && md[i][j+3]==hps && md[i][j+4]==hfps )
{k=h;}
}
do
{
for (i=0;i<n;i++)
{
for (j=0;j<5;j++)
{
if ((i>=c))
{
md[i][j]=md[i+1][j];
}
printf("n= %d \n",n);
}
}
n=n-1;
}
while (n>(n-(k-c)));
for (i=0;i<n;i++)
{
for (j=0;j<5;j++)
{
printf ("%d \t",md[i][j]);
}
printf("\n");
}
}
Solution :
#include <stdio.h>
void main()
{
int c, s, i , j , n ,b ,h ,o, md [100][5] , jps , mps, aps,hps , hfps , js , ms , as , hs ,hfs , k;
printf("donner n");
scanf("%d",&n);
b=1;
for (i=0;i<n;i++)
{
for (j=0;j<5;j++)
{
md[i][j]=b;
b=b+1;
}
}
for (i=0;i<n;i++)
{
for (j=0;j<5;j++)
{
printf ("%d \t",md[i][j]);
}
printf("\n");
}
printf("donner le jour");
scanf("%d",&js);
printf("donner le mois");
scanf("%d",&ms);
printf("donner l'annee");
scanf("%d",&as);
printf("donner l'heure");
scanf("%d",&hs);
printf("donner l'heure fin");
scanf("%d",&hfs);
printf("donner le jour p");
scanf("%d",&jps);
printf("donner le moisp");
scanf("%d",&mps);
printf("donner l'anneep");
scanf("%d",&aps);
printf("donner l'heurep");
scanf("%d",&hps);
printf("donner l'heure finp");
scanf("%d",&hfps);
for (i=0;i<n;i++)
{
j=0;
if (md[i][j]==js && md[i][j+1]==ms && md[i][j+2]==as && md[i][j+3]==hs && md[i][j+4]==hfs )
{c=i;}
if (md[i][j]==jps && md[i][j+1]==mps && md[i][j+2]==aps && md[i][j+3]==hps && md[i][j+4]==hfps )
{k=h;}
}
do
{
for (i=0;i<n;i++)
{
for (j=0;j<5;j++)
{
if ((i>=c))
{
md[i][j]=md[i+1][j];
}
printf("n= %d \n",n);
}
}
n=n-1;
}
while (n>(n-(k-c)));
for (i=0;i<n;i++)
{
for (j=0;j<5;j++)
{
printf ("%d \t",md[i][j]);
}
printf("\n");
}
}
A voir également:
- Suppression d'un intervalle (de lignes) dans une matrice
- Forcer la suppression d'un fichier - Guide
- Partage de photos en ligne - Guide
- Écrire plusieurs lignes dans une cellule excel mac - Guide
- Suppression compte gmail - Guide
- Suppression page word - Guide
1 réponse
Salut logout02,
Je ne vois pas bien ce que fait ton programme, en particulier par rapport à ta question ("Suppression d'un intervalle (de lignes) dans une matrice).
En tout cas, il ne peut donner rien de bon, "h" n'étant pas initialisé, il va contenir une valeur imprévisible, et donc k auquel tu affectes h également.
Poste ton code entre balises de code pour qu'il soit lisible sur le forum.
Dal
Je ne vois pas bien ce que fait ton programme, en particulier par rapport à ta question ("Suppression d'un intervalle (de lignes) dans une matrice).
En tout cas, il ne peut donner rien de bon, "h" n'étant pas initialisé, il va contenir une valeur imprévisible, et donc k auquel tu affectes h également.
Poste ton code entre balises de code pour qu'il soit lisible sur le forum.
Dal
Le plus simple, pour faire cela, est de déterminer le pointeur sur le premier élément supprimé (destination de la copie), le pointeur sur le premier élément à décaler (origine de la copie) et le nombre d'éléments à décaler. Après cela se fait avec une boucle while comme :
Dal