Se connecter avec
S'enregistrer | Connectez-vous

1er prog!

Dernière réponse : dans Programmation

Salut, je viens de compiler mon 1er prog en C (que j'étudie pour la 1ere année a la fac), vous en pensez quoi ? ca manque de commentaires par contre, et y doit y avoir un tas de trucs pas très lisible mais bon...)



#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>

int main()
{char un, deux, trois, quatre;
int s=0, r;
printf("BIENVENU(E) SUR LE TEST DE CONNAISSANCES\n");
system("PAUSE");
printf("Entrez vos initiales (4 lettres)");
scanf("%c", &un);
scanf("%c", &deux);
scanf("%c", &trois);
scanf("%c", &quatre);

printf("Le test commence . . .\nQUESTION 1\nPoil de Carotte a été écrit par :\n1 Yves Robert\n2 Jules Renard\n3 Antoine de Saint-Exupéry\n");
scanf("%d", &r);
switch(r)
{case 1: printf("FAUX! > Jules Renard\n"); break;
case 2: s = s + 1; printf("CORRECT !\n"); break;
case 3: printf("FAUX! > Jules Renard\n"); break;}

printf("QUESTION 2\nQuel poisson d'eau douce est aussi appelé poisson chat ?\n1 Silure\n2 Ligure\n3 Langure\n");
scanf("%d", &r);
switch(r)
{case 1: s = s + 1; printf("CORRECT !\n"); break;
case 2: printf("FAUX! > Silure\n"); break;
case 3: printf("FAUX! > Silure\n"); break;}

printf("QUESTION 3\nComment s'appelle Louis de Funès dans \"le corniaud\" ?\n1 Monsieur Saroyan\n2 Monsieur Barnier\n3 Monsieur Oscar\n");
scanf("%d", &r);
switch(r)
{case 1: s = s + 1; printf("CORRECT !\n"); break;
case 2: printf("FAUX! > Monsieur Saroyan\n"); break;
case 3: printf("FAUX! > Monsieur Saroyan\n"); break;}

printf("QUESTION 4\nEn quelle année fut tourné \"l'arroseur arrosé\", de Louis Lumière ?\n1 1890\n2 1895\n3 1900\n");
scanf("%d", &r);
switch(r)
{case 1: printf("FAUX! > 1895\n"); break;
case 2: s = s + 1; printf("CORRECT !\n"); break;
case 3: printf("FAUX! > 1895\n"); break;}

printf("QUESTION 5\nQui est \"la dentellière\", dans le film du même nom ?\n1 Isabelle Auroy\n2 Isabelle Adjani\n3 Isabelle Huppert\n");
scanf("%d", &r);
switch(r)
{case 1: printf("FAUX! > Isabelle Huppert\n"); break;
case 2: printf("FAUX! > Isabelle Huppert\n"); break;
case 3: s = s + 1; printf("CORRECT !\n"); break;}

printf("QUESTION 6\nOù se déroule l'action du \"salaire de la peur\", d'Henri-Georges Clouzot (1953) ? \n1 En Amérique du Sud\n2 Au Portugal\n3 A Mayotte\n");
scanf("%d", &r);
switch(r)
{case 1: s = s + 1; printf("CORRECT !\n"); break;
case 2: printf("FAUX! > En Amerique du Sud\n"); break;
case 3: printf("FAUX! > En Amerique du Sud\n"); break;}

printf("QUESTION 7\nQuelle est la formule exacte ?\n1 Volt = Watt x Ampère\n2 Ampère = Volt x Watt\n3 Watt = Volt x Ampère\n");
scanf("%d", &r);
switch(r)
{case 1: printf("FAUX! > Watt = Volt x Ampère\n"); break;
case 2: printf("FAUX! > Watt = Volt x Ampère\n"); break;
case 3: s = s + 1; printf("CORRECT !\n"); break;}

printf("QUESTION 8\nEn quelle année est sorti le 1er album d'Asterix ?\n1 1955\n2 1961\n3 1967\n");
scanf("%d", &r);
switch(r)
{case 1: printf("FAUX! > 1961\n"); break;
case 2: s = s + 1; printf("CORRECT !\n"); break;
case 3: printf("FAUX! > 1961\n"); break;}

printf("QUESTION 9\nQui a dessiné les Bidochons ?\n1 Binet\n2 Pinchon\n3 Giraud\n");
scanf("%d", &r);
switch(r)
{case 1: s = s + 1; printf("CORRECT !\n"); break;
case 2: printf("FAUX! > Binet\n"); break;
case 3: printf("FAUX! > Binet\n"); break;}

printf("QUESTION 10\nQui fonde l'Humanité en 1904 ?\n1 Jean Paul Sartre\n2 Simone de Beauvoir\n3 Jean Jaures\n");
scanf("%d", &r);
switch(r)
{case 1: printf("FAUX! > Jean Jaures\n"); break;
case 2: printf("FAUX! > Jean Jaures\n"); break;
case 3: s = s + 1; printf("CORRECT !\n"); break;}

printf("QUESTION 11\nQue signifie LCR ?\n1 Ligne Continue Retracée\n2 Ligue Communiste Revolutionnaire\n3 Lens Coitre Rousseau\n");
scanf("%d", &r);
switch(r)
{case 1: printf("FAUX! > Ligue Communiste Revolutionnaire\n"); break;
case 2: s = s + 1; printf("CORRECT !\n"); break;
case 3: printf("FAUX! > Ligue Communiste Revolutionnaire\n"); break;}

printf("QUESTION 12\nLe saturnisme est une intoxication par :\n1 Le fer\n2 Le cuivre\n3 Le plomb\n");
scanf("%d", &r);
switch(r)
{case 1: printf("FAUX! > Le plomb\n"); break;
case 2: printf("FAUX! > Le plomb\n"); break;
case 3: s = s + 1; printf("CORRECT !\n"); break;}

printf("QUESTION 13\nQui fut le dernier pape marié ?\n1 Adrien II\n2 Alexandre VI\n3 Hormidas\n");
scanf("%d", &r);
switch(r)
{case 1: s = s + 1; printf("CORRECT !\n"); break;
case 2: printf("FAUX! > Adrien II\n"); break;
case 3: printf("FAUX! > Adrien II\n"); break;}

printf("QUESTION 14\nComment appelle t-on le fils d'un tzar ?\n1 tzarévitch\n2 tsarévitch\n3 tzarévich\n");
scanf("%d", &r);
switch(r)
{case 1: printf("FAUX! > tsarévitch\n"); break;
case 2: s = s + 1; printf("CORRECT !\n"); break;
case 3: printf("FAUX! > tsarévitch\n"); break;}

printf("QUESTION 15\nLe guide Michelin a été créé en\n1 1890\n2 1900\n3 1910\n");
scanf("%d", &r);
switch(r)
{case 1: printf("FAUX! > 1900\n"); break;
case 2: s = s + 1; printf("CORRECT !\n"); break;
case 3: printf("FAUX! > 1900\n"); break;}

printf("TEST TERMINE !\nVous avez obtenu un total de %d réponses juste sur 15 !\n", s);
if (s<5) {printf("AHA T'es nul !");}
else {
if (s<10) {printf("Moué c'est très moyen !");}
else { if (s<13) {printf("C'est pas mal)!");}
else {printf("Wawou bien joué !");}}
}
system("PAUSE");
}

Autres pages sur : prog

Lassé par la pub ? Créez un compte

Pas pire, j'ai pas tout regardé mais si je ne me trompes pas, tu utilises déja les pointeurs ? C'est très bien pout un premier programme !

Je me trompes p-e car moi je connais le C++ et lorsque tu fais sa : "scanf("%c", &un);" je crois que c'est l'utilisation d'un pointeur. Est-ce que je me trompes ?

vire <iostream.h> c'est du C++ déprécié

s=s+1 <=> ++s ou s++

peut etre peux tu faire une fonction

il manque un return 0; pour le main


case 2: printf("FAUX! > Monsieur Saroyan\n"); break;
case 3: printf("FAUX! > Monsieur Saroyan\n"); break;}

=> case 2:
case 3:
printf("FAUX! > Monsieur Saroyan\n"); break;


pour le swich n'oublie pas l'étiquette "default" par ce que si un bigleux reponds 69, rien ne se apssera

et utilise les balises cpp

ThripS a écritPas pire, j'ai pas tout regardé mais si je ne me trompes pas, tu utilises déja les pointeurs ? C'est très bien pout un premier programme !

Je me trompes p-e car moi je connais le C++ et lorsque tu fais sa : "scanf("%c", &un);" je crois que c'est l'utilisation d'un pointeur. Est-ce que je me trompes ?
toi t'as peur [:++taz]

<HS> en C++ les pointeurs ne sont la que pour 2 choses: etre encapsulés dans des classes (avec les allocation qui vont avec) et assurer le polymorphisme. les utilisés en dehors de se contexte, sauf exception, c'est faire du C, ce qui est grave </HS>

Euh salut!
merci à vous 2 d'avoir répondu,
en effet dans "scanf("%c", &un);" c'est un pointeur mais en fait je sais meme pas encore pkoi y faut en mettre un là, on nous a di qu'avec un scanf il fallait, et on commence a peine les pointeurs en cours [:kwakult] donc voila si vous savez pkoi y faut utiliser un pointeur avec scanf ? et pkoi pas avec printf par exemple ? merci de m'éclairer [:kwakult]
Sinon Taz, a quoi sert le return 0; a la fin du main ? car j'ai essayé avec et sans et je n'ai pas vu de différence!
Oui c vrai que j'aurai du mettre un "default" pour le switch, par contre tu ma di "et utilise les balises cpp", qu'est ce que tu as voulu dire par là ?
Voilà, merci de vos éventuelles autres réponses [:darkgigot-le-vrai]

kangol a écritle pointeur c'est just parce que tu modifie la valeur de la variable que tu passe a la fonction.


J'avoue encore ne pas très bien saisir l'idée, mais ca ira mieux dès qu'on aura fait le cours là dessus :) 

quand tu passe une valeur a une fonction, le c en fait un copie avant de rentrer dans la fonction. si tu la modifie dans la fonction, a la sortie de celle ca, la valeur est oublié (a moins que tu ne la renvoy).

return X; prenet de retourner un code d erreur (ou pas ) sous unix;

  1. scanf("%c", &un);
  2. scanf("%c", &deux);
  3. scanf("%c", &trois);
  4. scanf("%c", &quatre);

c est mieux
  1. char nom[5]; /* 5 pour "\0" : fin de chaine */
  2. scanf("%s",nom); /* pas de & car nom est un pointeur */


et systeme pause y sert quoi ?

cyplp a écritreturn X; prenet de retourner un code d erreur (ou pas ) sous unix;

  1. scanf("%c", &un);
  2. scanf("%c", &deux);
  3. scanf("%c", &trois);
  4. scanf("%c", &quatre);

c est mieux
  1. char nom[5]; /* 5 pour "\0" : fin de chaine */
  2. scanf("%s",nom); /* pas de & car nom est un pointeur */


et systeme pause y sert quoi ?


t'en as d'autres des comme ça? et si je rentre 5 lettres? [:++taz]

le système pause c'est parce que mosieur utilise dev-cpp ou autre et que sinon, il a pas le temps de voir la fenetre dos :lol: 

edit: et commence l'amalgame tableau pointeur. un pointeur est une lvalue, un tableau nom. l'utilisation est quasi-similaire, mais ce n'est pas la meme chose

j'ai récidivé ;) 
cette fois j'ai fais un prog pour faire des calculs sur des matrices ([3][3])
Vous en pensez quoi ?

#include <stdio.h>

int produit()
{ int i, j, m, n;
int A[3][3], B[3][3], C[3][3];

printf("\n\nPRODUIT MATRICIEL\n\nVeuillez entrer les coordonnees de la matrice A (3 lignes et 3 colonnes) :\n");

for (i=0; i<3; i++)
{for (j=0; j<3; j++)
{printf("A[%d][%d]=?", i, j);
scanf("%d", &A[j]);
}
}

printf("Veuillez entrer les coordonnees de la matrice B (3 lignes et 3 colonnes) :\n");
for (m=0; m<3; m++)
{for (n=0; n<3; n++)
{printf("B[%d][%d]=?", m, n);
scanf("%d", &B[m][n]);
}
}
printf("\n\nMatrice A :\n");
for (i=0; i<3; i++)
{printf("\n");
for (j=0; j<3; j++)
{printf("%d\t", A[j]);}
}
printf("\n\nMatrice B :\n");
for (m=0; m<3; m++)
{printf("\n");
for (n=0; n<3; n++)
{printf("%d\t", B[m][n]);}
}

printf("\n\nLe produit matriciel de A par B est :\n");
C[0][0] = (A[0][0]*B[0][0] + A[0][1]*B[1][0] + A[0][2]*B[2][0]);
C[0][1] = (A[0][0]*B[0][1] + A[0][1]*B[1][1] + A[0][2]*B[2][1]);
C[0][2] = (A[0][0]*B[0][2] + A[0][1]*B[1][2] + A[0][2]*B[2][2]);
C[1][0] = (A[1][0]*B[0][0] + A[1][1]*B[1][0] + A[1][2]*B[2][0]);
C[1][1] = (A[1][0]*B[0][1] + A[1][1]*B[1][1] + A[1][2]*B[2][1]);
C[1][2] = (A[1][0]*B[0][2] + A[1][1]*B[1][2] + A[1][2]*B[2][2]);
C[2][0] = (A[2][0]*B[0][0] + A[2][1]*B[1][0] + A[2][2]*B[2][0]);
C[2][1] = (A[2][0]*B[0][1] + A[2][1]*B[1][1] + A[2][2]*B[2][1]);
C[2][2] = (A[2][0]*B[0][2] + A[2][1]*B[1][2] + A[2][2]*B[2][2]);

for (i=0; i<3; i++)
{ printf("\n");
for (j=0; j<3; j++)
{printf("%d\t", C[j]);}
}
printf("\n\n=============Programme ecrit par Zipo=============\n\n");
system("PAUSE");
return 0;
}



int somme()
{ int i, j, m, n;
int A[3][3], B[3][3];

printf("\n\nSOMME DE 2 MATRICES\n\nVeuillez entrer les coordonnees de la matrice A (3 lignes et 3 colonnes) :\n");

for (i=0; i<3; i++)
{for (j=0; j<3; j++)
{printf("A[%d][%d]=?", i, j);
scanf("%d", &A[j]);
}
}

printf("Veuillez entrer les coordonnees de la matrice B (3 lignes et 3 colonnes) :\n");
for (m=0; m<3; m++)
{for (n=0; n<3; n++)
{printf("B[%d][%d]=?", m, n);
scanf("%d", &B[m][n]);
}
}
printf("\n\nMatrice A :\n");
for (i=0; i<3; i++)
{printf("\n");
for (j=0; j<3; j++)
{printf("%d\t", A[j]);}
}
printf("\n\nMatrice B :\n");
for (m=0; m<3; m++)
{printf("\n");
for (n=0; n<3; n++)
{printf("%d\t", B[m][n]);}
}

printf("\n\nLa somme matricielle de A avec B est :\n");

for (i=0; i<3; i++)
{ printf("\n");
for (j=0; j<3; j++)
{printf("%d\t", (A[j]+B[j]));}
}
printf("\n\n=============Programme ecrit par Zipo=============\n\n");
system("PAUSE");
return 0;
}



int scalaire()
{ int i, j, k;
int A[3][3];

printf("\n\nMULTIPLICATION D UNE MATRICE PAR UN SCALAIRE K\n\nVeuillez entrer les coordonnees de la matrice A (3 lignes et 3 colonnes) :\n");

for (i=0; i<3; i++)
{for (j=0; j<3; j++)
{printf("A[%d][%d]=?", i, j);
scanf("%d", &A[j]);
}
}

printf("\n\nMatrice A :\n");
for (i=0; i<3; i++)
{printf("\n");
for (j=0; j<3; j++)
{printf("%d\t", A[j]);}
}
printf("Entrez la valeur du scalaire naturel K:");
scanf("%d", &k);

printf("\n\nLa multiplication de A par K donne la matrice suivante :\n");

for (i=0; i<3; i++)
{ printf("\n");
for (j=0; j<3; j++)
{printf("%d\t", (A[j]*k));}
}
printf("\n\n=============Programme ecrit par Zipo=============\n\n");
system("PAUSE");
return 0;
}


int main()
{int p=0, r;
while (p < 1000)
{

printf("MENU PRINCIPAL\n\nFaites votre choix\n\n1 Calcul de la somme de 2 matrices\n2 Cacul du produit matriciel de 2 matrices\n3 Calcul de la multiplication d une matrice par un scalaire\n4 Quit\n\nTapez le chiffre correspondant a votre choix:\n");
scanf("%d", &r);
switch(r)
{ case 1: somme(); break;
case 2: produit(); break;
case 3: scalaire(); break;
case 4: p = 1000; break;
default: printf("Vous devez taper 1, 2, 3 ou 4 !\n"); break;
}
}
}

Zipo a écriten effet dans "scanf("%c", &un);" c'est un pointeur mais en fait je sais meme pas encore pkoi y faut en mettre un là, on nous a di qu'avec un scanf il fallait, et on commence a peine les pointeurs en cours [:kwakult] donc voila si vous savez pkoi y faut utiliser un pointeur avec scanf ? et pkoi pas avec printf par exemple ? merci de m'éclairer [:kwakult]


En fait le & représente l'adresse de ta variable donc quand tu fait scanf("%d",&un);
tu attend que l'utilisateur entre un nombre (%d) et ensuite, tu le met à l'adresse (&) de la variable (un)

Pour le printf, t'as pas besoin d'unn & tout simplement parceque tu va cherché le CONTENU de la variable, tu n'a donc pas besoin de son adresse
essaye dans un printf de mettre un &, tu verra c'est l'adresse de la variable et non son contenu qui va s'afficher

Citation :
C[0][0] = (A[0][0]*B[0][0] + A[0][1]*B[1][0] + A[0][2]*B[2][0]);
C[0][1] = (A[0][0]*B[0][1] + A[0][1]*B[1][1] + A[0][2]*B[2][1]);
C[0][2] = (A[0][0]*B[0][2] + A[0][1]*B[1][2] + A[0][2]*B[2][2]);
C[1][0] = (A[1][0]*B[0][0] + A[1][1]*B[1][0] + A[1][2]*B[2][0]);
C[1][1] = (A[1][0]*B[0][1] + A[1][1]*B[1][1] + A[1][2]*B[2][1]);
C[1][2] = (A[1][0]*B[0][2] + A[1][1]*B[1][2] + A[1][2]*B[2][2]);
C[2][0] = (A[2][0]*B[0][0] + A[2][1]*B[1][0] + A[2][2]*B[2][0]);
C[2][1] = (A[2][0]*B[0][1] + A[2][1]*B[1][1] + A[2][2]*B[2][1]);
C[2][2] = (A[2][0]*B[0][2] + A[2][1]*B[1][2] + A[2][2]*B[2][2]);


toi, t'as du bosser ton algo à fond!

autre chose, dans ton dernier prog, tu demande d'entrer un nombre je sait pas pour toi mais nous notre prof essaye d'entrer un caractère et là... PAF boucle infinie donc je te conseille d'utiliser la fct isdigit()
en fait au lieu de faire un scanf sur un entier, tu scan un char et tu vérifie si c'est un nombre avec isdigit()

Koude a écritautre chose, dans ton dernier prog, tu demande d'entrer un nombre je sait pas pour toi mais nous notre prof essaye d'entrer un caractère et là... PAF boucle infinie donc je te conseille d'utiliser la fct isdigit()
en fait au lieu de faire un scanf sur un entier, tu scan un char et tu vérifie si c'est un nombre avec isdigit()
ton intention est louable mais pathétiquement inéfficace. la méthode canonique c'est une bonne combinaison, fgets + sscanf

++Taz a écritton intention est louable mais pathétiquement inéfficace. la méthode canonique c'est une bonne combinaison, fgets + sscanf


Dsl je fait avec ce que je connais [:sisicaivrai]
Par contre sur le point de l'efficacité, je suis pas d'accord, ça marche très bien

exemple pour lire un int
  1. char buffer[80];
  2. int i;
  3.  
  4. if(fgets(buffer, sizeof buffer, stdin) == NULL)
  5. {
  6. // exemple de traitement minimal d'erreur
  7. perror("problème avec fgets");
  8. exit(EXIT_FAILURE);
  9. }
  10.  
  11. if(sscanf(buffer, "%d", &i) != 1)
  12. {
  13. perror("sscanf, impossible de lire un entier");
  14. exit(EXIT_FAILURE);
  15. }

et hop tu as lu un int.
NB: - fgets renvoie NULL en cas d'erreur d'E/S (dont eof)
- sscanf renvoie le nombre d'éléments correctement convertis
- voir aussi sncanf

ben moi je te donne la solution générique. c'est sur que si tu veux lire un chiffre (différent d'un nombre), faire un getchar() est un isdigit() fonctionnera a condition de bien vérifier les codes de retours. mais c'est là une version tres tres basique, il vaut mieux préférer des solutions de hauts niveaux

++Taz a écrit
Citation :
C[0][0] = (A[0][0]*B[0][0] + A[0][1]*B[1][0] + A[0][2]*B[2][0]);
C[0][1] = (A[0][0]*B[0][1] + A[0][1]*B[1][1] + A[0][2]*B[2][1]);
C[0][2] = (A[0][0]*B[0][2] + A[0][1]*B[1][2] + A[0][2]*B[2][2]);
C[1][0] = (A[1][0]*B[0][0] + A[1][1]*B[1][0] + A[1][2]*B[2][0]);
C[1][1] = (A[1][0]*B[0][1] + A[1][1]*B[1][1] + A[1][2]*B[2][1]);
C[1][2] = (A[1][0]*B[0][2] + A[1][1]*B[1][2] + A[1][2]*B[2][2]);
C[2][0] = (A[2][0]*B[0][0] + A[2][1]*B[1][0] + A[2][2]*B[2][0]);
C[2][1] = (A[2][0]*B[0][1] + A[2][1]*B[1][1] + A[2][2]*B[2][1]);
C[2][2] = (A[2][0]*B[0][2] + A[2][1]*B[1][2] + A[2][2]*B[2][2]);


toi, t'as du bosser ton algo à fond!


salut!
euh wai dsl la ct pas terrible mais je l'ai montré a mon prof il ma donné la formule exacte, donc forcément ca allège bcp plus le code ;) 
par contre pr ceux que ca intéresse je l'ai pas sous la main elle est a la fac
sinon je ne conais pas encore ni isdigit() ni fgets + sscanf
donc j'utilise scanf que mon prof a déterminé comme "très puissant" [:izz]
Expert Programmation

Daphniel> Nécrophile !!!!!

Pour la peine, tu vas nous coder une fonction qui prend en paramètre un nombre n d'une part et trois matrices d'autres part. Le résultat sera bien sûr le produit des deux premières dans la dernière. Tu as jusqu'à demain soir.....
Expert Programmation

Un n pour multiplier des matrices nxn : 5x5, 12x12 ou 1000x1000.

Une troisième pour mettre le résultat !
Et oui, car l'usage veut que l'allocation et l'affectation soient bien séparées. Donc une fonction de calcul suppose que les paramètres qu'on lui passe sont correctement alloués.

Faire un UP, c'est ramené un topic en haut de la liste des topics qui est triée par date.

Faire un UP de deux ans et demi, c'est ramené en haut de la liste un topic qui dormait en paix depuis Avril 2003 par exemple : ce qui s'apparente à une exhumation.

Ah oké

Mais quelque part c'est plus mieux de ramener un sujet déjà existent plutot que d'en créé un pareil non ?

Pour ton program, quelquechose du genre :

  1. char* n;
  2. printf("Entrez n",n);
  3. scanf("%c",n);
  4.  
  5. if (n = 5) {
  6. A[1][1]= 5 * A[1][1];
  7. A[1][2]= 5 *A[1][2];
  8. A[1][3]=5*A[1][3] ;
  9. A[1][4]= 5 *A[1][4];
  10. A[1][5] = 5 *A[1][5] ;
  11. A[2][1]= 5*A[1][1];
  12. A[2][2]= 5 *A[2][2];
  13. A[2][3]=5 *A[2][3] ;
  14. A[2][4]= 5 *A[2][4];
  15. A[2][5]= 5 *A[2][5];
  16. A[3][1]= 5 *A[3][1];
  17. A[3][2]= 5 *A[3][2];
  18. A[3][3]=5 *A[3][3];
  19. A[3][4]= 5 *A[3][4] ;
  20. A[3][5] = 5 *A[3][5];
  21. A[4][1]= 5*A[4][1];
  22. A[4][2]= 5 *A[4][2];
  23. A[4][3]= 5 *A[4][3];
  24. A[4][4] =5 *A[4][5];
  25. A[4][5]= 5 *A[4][4];
  26. A[5][1] = 5*A [5][1];
  27. A[5][2]= 5 *A[5] [1];
  28. A[5][3]= 5 *A[5][3];
  29. A[5][4]= 5 *A[15[4];
  30. A[5][5]= 5 *A[5][5];
  31. }
  32. else if (n = 12) {
  33. // calcul de n = 12 que je vais pas faire ici paske c'est plus long
  34. }
  35. else if (n = 1000) {
  36. // calcul de n = 1000 que je vais pas faire ici paske c'est aussi plus long
  37. }
  38. else printf("Erreur, cette librairie peux juste calculer pour n = 5 ou 12 ou 1000")


Sa te va ?

En meme temps c'est pas trop optimiser, on pourrait mettre un
  1. switch
plutot non ? parait que c'est + propre

Et aussi on a n, mais ptet qu'on pourrait prendre m pour les matrices pas carrés, paske ça limite un peu là non ?
Expert Programmation

Note : 1 / 20

La saisie des paramètres ( et l'allocation des variables ) n'a RIEN à faire dans une fonction de calcul.

La saisie de ton caractère est à revoir complètement :
  1. char n;
  2. printf("Entrez n");
  3. scanf("%c",&n);


Proposition de correction pour l'exercice :
  1. float ** ProduitDeMatricesCarrees ( int n, float ** m1, float ** m2, float ** m3 )
  2. {
  3. int i, j;
  4.  
  5. for (i=0; i<n; i++)
  6. for (j=0; j<n; j++)
  7. m3 [i][j] = m1 [i][j] * m2 [i][j];
  8.  
  9. return m3;
  10. }


Exercice 2 : Expliquer pourquoi la version << char*n; scanf ("%c", n); >> n'est pas bonne.

Exercice 3 : Ecrire une fonction pour multiplier des matrices non carrées.
Expert Programmation

Anubis>> Euh, char n;scanf ("%c",&n); c'est quand même mieux

Hirilorn>> Bon, il a prévenu, c'est bien un noob. Mais l'important était dans l'algo de calcul, pas dans la saisie des paramètres. T'es vraiment sûr qu'avec ton type void(*my_mat_tab[5]) on va pouvoir faire des calculs sur des matrices 12x12 ?

On peut lui faire faire toute la bibliothèque tant qu'à faire : saisie, multiplication, addition, digonalisation, etc.
Expert Programmation

Ben, mon cher Daphniel, j'ai peut être confondu avec un autre post. Mais n'empêche qu'en C, tu en es quand même au tout début, avoue.

Hirilorn, je voudrais maintenant le type de données pour les matrices 15x15 s'il te plait.

Citation :
Ben, mon cher Daphniel, j'ai peut être confondu avec un autre post. Mais n'empêche qu'en C, tu en es quand même au tout début, avoue.

Hirilorn, je voudrais maintenant le type de données pour les matrices 15x15 s'il te plait.


je veux une macro cpp, c'est plus générique
Lassé par la pub ? Créez un compte