J'ai fait un programme mais il ne veut pas marcher,je vous propose de m'aider s'il vous plait !
L'exo est :
Soit A une matrice de n,m tailles d'entiers,chaque ligne de la matrice contient des éléments triés dans l'ordre croissant.
Ecrire un programme qui insère une valeur val donnée dans chaque ligne de la matrice, si elle n'existe pas deja.L'insertion doit préserver l'ordre croissant des éléments.
En cas d'insertion, la dernière valeur de la ligne sera perdue.
Voici ce que j'ai fait :
Code:#include <stdio.h> #include <stdlib.h> int main() {int A[10][20],val,c,k; int i=0,j=0,n=0,m=0; printf("Donnez le nombre de ligne puis le nombre do colonne de votre matrice:\n"); scanf("%d%d",&n,&m); printf("Entrez les elements de votre matrice ligne par ligne:"); for(j=0;j<n;j++) {for (i=0;i<m;i++) { scanf("%d",&A[j][i]); }} printf("Votre matrice est:\n"); for(j=0;j<n;j++) { for (i=0;i<m;i++) { printf("%d\t",A[j][i]); } printf("\n"); } //On donne la valeur a inserer : printf("Donnez la valeur a inserer s'il vous plait:"); scanf("%d",&val); //On commence la procedure for(j=0;j<n;j++) { for (i=0;i<m;i++) { if(val<A[j][i] ) { for(k=(m-1);k>=i+1;k--) { A[j][k]=A[j][k-1]; } c=val; A[j][i]=val; val=A[j][i+1];} else if(c>A[j][m-1]) { A[j][m-1]=val; } //Le cas ou val== A[i][j] else { A[j][i]=A[j][i]; } } } for(j=0;j<n;j++) {for (i=0;i<m;i++) { printf("%d\t",A[j][i]); } printf("\n"); } return 0; }
-----