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");
}
#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 ?
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
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] 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 ?
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
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] [: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
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
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] [:kwakult]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/12/b9/kwakult.gif)
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
cyplp a écritreturn X; prenet de retourner un code d erreur (ou pas ) sous unix;
c est mieux
et systeme pause y sert quoi ?
scanf("%c", &un);
scanf("%c", &deux);
scanf("%c", &trois);
scanf("%c", &quatre);
c est mieux
char nom[5]; /* 5 pour "\0" : fin de chaine */
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
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;
}
}
}
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
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] [: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] [:kwakult]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/12/b9/kwakult.gif)
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()
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 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()
exemple pour lire un int
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
char buffer[80];
int i;
if(fgets(buffer, sizeof buffer, stdin) == NULL)
{
// exemple de traitement minimal d'erreur
perror("problème avec fgets");
exit(EXIT_FAILURE);
}
if(sscanf(buffer, "%d", &i) != 1)
{
perror("sscanf, impossible de lire un entier");
exit(EXIT_FAILURE);
}
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
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!
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"
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.
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 :
Sa te va ?
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 :
char* n;
printf("Entrez n",n);
scanf("%c",n);
if (n = 5) {
A[1][1]= 5 * A[1][1];
A[1][2]= 5 *A[1][2];
A[1][3]=5*A[1][3] ;
A[1][4]= 5 *A[1][4];
A[1][5] = 5 *A[1][5] ;
A[2][1]= 5*A[1][1];
A[2][2]= 5 *A[2][2];
A[2][3]=5 *A[2][3] ;
A[2][4]= 5 *A[2][4];
A[2][5]= 5 *A[2][5];
A[3][1]= 5 *A[3][1];
A[3][2]= 5 *A[3][2];
A[3][3]=5 *A[3][3];
A[3][4]= 5 *A[3][4] ;
A[3][5] = 5 *A[3][5];
A[4][1]= 5*A[4][1];
A[4][2]= 5 *A[4][2];
A[4][3]= 5 *A[4][3];
A[4][4] =5 *A[4][5];
A[4][5]= 5 *A[4][4];
A[5][1] = 5*A [5][1];
A[5][2]= 5 *A[5] [1];
A[5][3]= 5 *A[5][3];
A[5][4]= 5 *A[15[4];
A[5][5]= 5 *A[5][5];
}
else if (n = 12) {
// calcul de n = 12 que je vais pas faire ici paske c'est plus long
}
else if (n = 1000) {
// calcul de n = 1000 que je vais pas faire ici paske c'est aussi plus long
}
else printf("Erreur, cette librairie peux juste calculer pour n = 5 ou 12 ou 1000")
Sa te va ?
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 :
Proposition de correction pour l'exercice :
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.
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 :
char n;
printf("Entrez n");
scanf("%c",&n);
Proposition de correction pour l'exercice :
float ** ProduitDeMatricesCarrees ( int n, float ** m1, float ** m2, float ** m3 )
{
int i, j;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
m3 [i][j] = m1 [i][j] * m2 [i][j];
return m3;
}
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.
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.
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.
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
![[:sisicaivrai] [:sisicaivrai]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/e1/91/sisicaivrai.gif)