TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
Le problème de ce sujet a été résolu
| Page : 1 | |||
| Auteur | Message | ||
|---|---|---|---|
| 1 visiteur sur ce sujet (1 anonyme) | |||
| Page : 1 | |||
mangeur_de_papaye
|
# Posté le 03/07/2008 à 20:22:38 | ||
|
Groupe : Membres |
Bonjour à tous,
Je débute en C et voilà mon problème: Je veux que l'utilisateur puisse taper sur la console, la dimension n d'un tableau[n][n+1]. Bon, on pense tout de suite au malloc, et après avoir bien relu le cours je vois pas du tout comment je pourrais faire. Voila, si quelqu' un veut bien m'aiguiller. |
||
double_ZerO
|
# Posté le 03/07/2008 à 20:29:41 | ||
tant que tu rames, tu avances![]() Groupe : Membres |
Cette réponse a aidé l'auteur du sujetCode : C
ça peut être une solution où 'n' et 'm' sont la taille de tes dimensions (saisi par l'utilisateur par exemple)...
Édité
le 03/07/2008 à 20:31:08
par double_ZerO
|
||
mangeur_de_papaye
|
# Posté le 03/07/2008 à 20:34:45 | ||
|
Groupe : Membres |
Aaaaa ok ok ok ok ok ok ok
MERKI merki |
||
Erosquare
|
# Posté le 03/07/2008 à 20:36:03 | ||
|
Groupe : Membres |
Cette réponse a aidé l'auteur du sujet
Édité
le 03/07/2008 à 21:46:03
par Erosquare
![]() |
||
mangeur_de_papaye
|
# Posté le 03/07/2008 à 21:07:31 | ||
|
Groupe : Membres |
le second code marche mieux car sur visual on affiche:
"un indice requiert un type tableau ou pointeur" pour une erreur au niveau du deuxieme malloc:le **matrice arrange la chose. merci a toi erosquare. |
||
Erosquare
|
# Posté le 03/07/2008 à 22:03:27 | ||
|
Groupe : Membres |
j'ai corrigé deux petits trucs dans mon code. Si t'as besoin de desallouer ta matrice :
Code : C
![]() |
||
mangeur_de_papaye
|
# Posté le 03/07/2008 à 23:01:05 | ||
|
Groupe : Membres |
AAAAAAAAAAA ya quand meme un probleme!!!!!
Regarde par toi meme en faisant n=2 sur la console met des coeff non nuls Est-ce un free(systeme) ne suffirait po? #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) /*DEBUT DU PROGRAMME*/ { //Declaration de la *matrice double **systeme = NULL; int n = 0 ;//dimension de la matrice //Declaration des variables pour parcourir la matrice int l=0 /*Pour parcourir les lignes*/, c=0/*Pour parcourirles colonnes*/, d=0/*Pour parcourir de gauche a droite et vis versa et appeler le coefficient diagonale*/; double m=0/*Pour enregistter la valeur divisante*/; /*TITRE*/ printf (" RESOUDRE UN SYSTEME A N EQUATIONS ET N INCONNUES\n\n"); /*ALLOCATION DYNAMIQUE*/ printf ("Nombre d'equations = Nombre d'inconnues = "); scanf ("%ld", &n); systeme = malloc ( n*sizeof(double)); for (l=0; l<n; l++) { systeme[l] = malloc ( (n+1)*sizeof(double)); } /*Comment ca marche??*/ printf (" \n\n\n Rentrer les coefficients comme presente :\n\n "); printf (" systeme[0][0]*inconnue1 + systeme[0][1]*inconnue2 + ... = systeme[0][n+1]\n "); printf (" systeme[1][0]*inconnue1 + systeme[1][1]*inconnue2 + ... = systeme[1][n+1]\n "); printf ("\n ...\n\n "); printf (" systeme[n-1][0]*inconnue1+ systeme[n-1][1]*inconnue2+ ... = systeme[n-1][n+1]\n"); printf (" systeme[n][0]*inconnue1 + systeme[n][1]*inconnue2 + ... = systeme[n][n+1]\n\n\n "); printf ( " --> Rentrer des systeme[i][i]=!0\n\n\n"); /*RENTREE DES COEFFICIENTS*/ for (l=0; l<n; l++) { for (c=0; c<(n+1); c++) { printf ( "systeme[%ld][%ld]= ",l,c); scanf ( "%lf", &systeme[l][c]); } } /*AFFICHAGE DE LA MATRICE*/ for (l=0; l>n; l++) { for (c=0; c<(n+1); c++) { if (c<n){ printf( "%lf ",systeme[l][c] );} else {printf( "%lf\n",systeme[l][c] );}//C'est juste pour revenir à la ligne } } printf ("\n\n"); /*I) L'ALLER : DE GAUCHE A DROITE*/ for (d=0; d<n; d++) { //i) Première opération m=systeme[d][d]; for(c=0; c<(n+1); c++) { systeme[d][c]=systeme[d][c]/m; /*On divise la ligne du coefficient diagonale par celui ci, en parcourant les colonnes à d constant*/ } //ii) Deuxième opération for (l=d+1; l<n; l++)/*On ne touche que les coefficients en dessous du coefficient diagonale de la colonne */ { m=systeme[l][d]; for(c=0; c<(n+1); c++)//opération sur la ligne l { systeme[l][c]=systeme[l][c]-m*systeme[d][c]; /*Chaque ligne reçoit elle même moins le cofficient de la colonne d de ligne l fois la ligne d*/ } } } /*II) LE RETOUR : DE DROITE A GAUCHE*/ for (d=(n-1); d>=1; d--) { for (l=d-1; l>=0; l--)/*On ne touche que les coefficients au dessus du coefficient diagonale de la colonne */ { m=systeme[l][d]; for (c=(n+1); c>=0; c--)//opération sur la ligne l { systeme[l][c]=systeme[l][c]-m*systeme[d][c]; /*Chaque ligne reçoit elle même moins le cofficient de la colonne d de ligne l fois la ligne d*/ } } } /*III) AFFICHAGE DE LA MATRICE PIVOTEE GAUSSEMENT*/ for (l=0; l<n; l++) { for (c=0; c<(n+1); c++) { if (c<n){ printf( "%lf ",systeme[l][c] );} else {printf( "%lf\n",systeme[l][c] );} } } printf("\n\n"); /*IV) AFFICHAGE DES SOLUTIONS*/ for (l=0; l<n; l++) { printf ( " inconnue%ld = %lf\n", l+1, systeme[l][n+1]); } /*FIN DU PROGRAMME*/ for (l=0; l<n; l++) { free (systeme[l]); } free (systeme); system("PAUSE"); return EXIT_SUCCESS; } |
||
candide
|
# Posté le 04/07/2008 à 00:06:51 | ||
"In code we trust"![]() Groupe : Membres |
Citation : double_ZerO
Code : C
N'importe quoi, tab[i] est un entier.
|
||
-ed-
|
# Posté le 04/07/2008 à 01:39:01 | ||
C is a sharp tool![]() Groupe : Membres |
Citation : mangeur_de_papaye
Je débute en C et voilà mon problème: Je veux que l'utilisateur puisse taper sur la console, la dimension n d'un tableau[n][n+1]. Bon, on pense tout de suite au malloc, et après avoir bien relu le cours je vois pas du tout comment je pourrais faire. Voila, si quelqu' un veut bien m'aiguiller. http://mapage.noos.fr/emdel/notes.htm#tabdyn_2d Emmanuel Delahaye. Non à la pub sur l'alcool sur Internet. Des infos sur la programmation et le langage C: http://bien-programmer.blogspot.com/ http://mapage.noos.fr/emdel/ ![]() |
||
Retour au forum "Langage C" ou à la liste des forums
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
RSS tutoriels |
RSS news
Édité par Simple IT SARL :
Nous contacter
| Notre blog | Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
326 Zéros connectés |
8 requêtes |
0.0608s (0.0397s)
