Pb programme en language C
TheFUllMetal
Messages postés
1
Statut
Membre
-
chuka Messages postés 980 Statut Membre -
chuka Messages postés 980 Statut Membre -
Bonjour,
alors voilà je dois créer un programme permettant de saisir un tableau de 0,1,2 uniquement.
Puis de compter les 0et les 1.
Ensuite je dois échanger les 0 et les 1;
Et enfin les recompter.
mon prog est le suivant :
#include <stdio.h>
#include <stdlib.h>
// TD2 EXO1 tableau de 0,1 ou 2
void saisie ( int t[20] )
{
int i;
for (i=0 ; i<20 ;i++)
{
do{
printf (" entrez entiers n° %i\n ", i++);
scanf ("%i",&t[i]);
}
while ( t[i]!=1 || t[i]!=0 || t[i]!=2 );
}
}
void affiche ( int t[20] ){
int i;
for (i=0 ; i<20 ;i++)
{
printf ("%i",&t[i]);
printf ("\n");
}
}
float calcul ( int t[20],int chiffre ){
int i;
int v=0;
for (i=0 ; i<20 ;i++)
{
if (t[i]==chiffre)
v++;
}
return v;
}
void permut (int tab[20], int nb1,int nb2)
{
int i;
for (i=0 ; i<20 ;i++)
{
if (tab[i]==nb1)
tab[i]=nb2;
else
if (tab[i]==nb2)
tab[i]=nb1;
}
}
void main(void)
{
int i;
int t[20];
int nb1;
int nb2;
saisie(t);
affiche(t);
nb1=calcul(t,0);
nb2=calcul(t,1);
printf("le nombre de 0 est %i\n",nb1);
printf("le nombre de 1 est %i\n",nb2);
permut(t,0,1);
nb1=calcul(t,0);
nb2=calcul(t,1);
printf("le nombre de 0 est %i\n",nb1);
printf("le nombre de 1 est %i\n",nb2);
}
Si quelqu'un voit ce qui ne va pas je le remercie d'avance :)
alors voilà je dois créer un programme permettant de saisir un tableau de 0,1,2 uniquement.
Puis de compter les 0et les 1.
Ensuite je dois échanger les 0 et les 1;
Et enfin les recompter.
mon prog est le suivant :
#include <stdio.h>
#include <stdlib.h>
// TD2 EXO1 tableau de 0,1 ou 2
void saisie ( int t[20] )
{
int i;
for (i=0 ; i<20 ;i++)
{
do{
printf (" entrez entiers n° %i\n ", i++);
scanf ("%i",&t[i]);
}
while ( t[i]!=1 || t[i]!=0 || t[i]!=2 );
}
}
void affiche ( int t[20] ){
int i;
for (i=0 ; i<20 ;i++)
{
printf ("%i",&t[i]);
printf ("\n");
}
}
float calcul ( int t[20],int chiffre ){
int i;
int v=0;
for (i=0 ; i<20 ;i++)
{
if (t[i]==chiffre)
v++;
}
return v;
}
void permut (int tab[20], int nb1,int nb2)
{
int i;
for (i=0 ; i<20 ;i++)
{
if (tab[i]==nb1)
tab[i]=nb2;
else
if (tab[i]==nb2)
tab[i]=nb1;
}
}
void main(void)
{
int i;
int t[20];
int nb1;
int nb2;
saisie(t);
affiche(t);
nb1=calcul(t,0);
nb2=calcul(t,1);
printf("le nombre de 0 est %i\n",nb1);
printf("le nombre de 1 est %i\n",nb2);
permut(t,0,1);
nb1=calcul(t,0);
nb2=calcul(t,1);
printf("le nombre de 0 est %i\n",nb1);
printf("le nombre de 1 est %i\n",nb2);
}
Si quelqu'un voit ce qui ne va pas je le remercie d'avance :)
A voir également:
- Pb programme en language C
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
- Message programmé iphone - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
9 réponses
salut,
Ben si tu recup un int dans ta variable, %d est le code de conversion....
je connais pas %i...
Ben si tu recup un int dans ta variable, %d est le code de conversion....
je connais pas %i...
Bonjour
Je n'ai pas tou lu, mais ça commence mal ...
while ( t[i]!=1 || t[i]!=0 || t[i]!=2 );
ce while est toujours vrai ! il faudrait que t[i] soit égal à la fois à 0, à 1 et à 2 pour terminer ta boucle
Je n'ai pas tou lu, mais ça commence mal ...
while ( t[i]!=1 || t[i]!=0 || t[i]!=2 );
ce while est toujours vrai ! il faudrait que t[i] soit égal à la fois à 0, à 1 et à 2 pour terminer ta boucle
@fiddy
Merci pour ta réponse.
Je viens de tester le programme malheureusement il ne marche tj pas.
Si dans mon tableau je rentre 3 ou 4 le prog continue et il ne s'arrête pas au bout des 20 entiers :( .
Merci pour ta réponse.
Je viens de tester le programme malheureusement il ne marche tj pas.
Si dans mon tableau je rentre 3 ou 4 le prog continue et il ne s'arrête pas au bout des 20 entiers :( .
merci chuka pour l'aide je test sa demain et je te dit quois
PS: pourquoi mes-tu "%d " et non "%i " ?
PS: pourquoi mes-tu "%d " et non "%i " ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut
Essaie
Cdt
Essaie
#include <stdio.h>
#include <stdlib.h>
//TD2 EXO1 tableau de 0,1 ou 2
void saisie (int t[20])
{
int i;
for (i=0 ; i<20 ;i++)
{
do{
printf (" entrez entiers n° %i\n ", i+1);
scanf ("%i",&t[i]);
}
while ( t[i]!=1 && t[i]!=0 && t[i]!=2 );
}
}
void affiche ( int t[20] ){
int i;
for (i=0 ; i<20 ;i++)
{
printf ("%i\n",t[i]);
}
}
float calcul ( int t[20],int chiffre ){
int i;
int v=0;
for (i=0 ; i<20 ;i++)
{
if (t[i]==chiffre)
v++;
}
return v;
}
void permut (int tab[20], int nb1,int nb2)
{
int i;
for (i=0 ; i<20 ;i++)
{
if (tab[i]==nb1)
tab[i]=nb2;
else
if (tab[i]==nb2)
tab[i]=nb1;
}
}
int main(void)
{
int i;
int t[20];
int nb1;
int nb2;
saisie(t);
affiche(t);
nb1=calcul(t,0);
nb2=calcul(t,1);
printf("le nombre de 0 est %i\n",nb1);
printf("le nombre de 1 est %i\n",nb2);
permut(t,0,1);
nb1=calcul(t,0);
nb2=calcul(t,1);
printf("le nombre de 0 est %i\n",nb1);
printf("le nombre de 1 est %i\n",nb2);
return 0;
}
Cdt