Bonjour bonjour !!
J´aurais besoin d´un coup de main pour créer un programme permettant la saisie puis l´affichage d´un tableau de N (fixé) entier...
Je ne demande pas la solution mais juste la marche à suivre, je ne sais absolument pas par quoi commencé ^^.
Merci d´avance !
si N est fixé a la compilation, tu fais un tableau de N int
si N n´est pas fixé a la compilation, mais demandé dans un scanf, il faudra que tu fasses ce tableau de façon dynamique : avec un malloc, (et n´oublie pas le free ensuite)
ça, c´était pour initialiser le tableau
Ensuite, pour le remplir, dans les 2 cas c´est la meme chose : tu fais un for i de 0 a <N et dedans, un scanf sur tab[i].
J´ai codé ça, mais le probleme c´est que quand l´utilisateur doit entrer les valeurs du tableau, le programme de propose que des valeurs d´indice 10, il n´y a pas de décrémentation... De quoi ça vient ?
Prgm :
int main( )
{
int n = 10; /* Taille du tableau*/
float tableau[N_max]; /* Tableau a une dimension de longueur N max avec*/
int b; /* Variable de boucle*/
/* Saisi a l´aide du clavier des N valeurs du tableau */
printf("Veuillez saisir les %d valeurs du tableau \n", n);
for (b=0; b<n; n+1)
{
printf(" Valeur d´indice %d : ", n);
scanf("%f", &tableau[n]);
}
/* Valeur de retour du main */
printf(" Fin du programme\n");
return(0);
}
Dsl pour le double post... Je sais d´où ca vient : /* Saisi a l´aide du clavier des N valeurs du tableau */
printf("Veuillez saisir les %d valeurs du tableau \n", n);
Mais comment je dois faire pour que l´indice décrémente à chaque nouvelle entrée dans n ?? ?
for (b=0; b<n; n+1)
{
printf(" Valeur d´indice %d : ", n);
scanf("%f", &tableau[n]);
}
Faut d´inattention la dedans !
&tableau[n] --> c´est toujorus la case n (qui est d´ailleurs une case hors champ) que tu remplis.... essaie donc de remplir la case "b" plutot ![]()
&tableau[b]
rah grillé par fvirtman.
salaud! ![]()
Certes certes ^^ un peu de compassion please ^^
Mais ça ne décrémente toujours pas ^^
rahlalala prise de tete... Je cherche je cherche... ![]()
godrik > ![]()
je ne comprends pas ce que tu veux qui décrémente ?
l´affichage de ton printf ? (meme probleme, faut mettre b et non n)
ou alors tu veux que quand tu entres une valeur dans ton tableau, elle soit décrémentée, modifiée ?
Donne nous un exemple de ce que tu voudrais.
A l´écran cela devrait donné ceci pour etre idéal ^^ :
Veuillez saisir les 10 valeurs du tableau :
Valeur d´indice 10 : /*un ptit scanf pour entrer la valeur désirée*/
Valeur d´indice 9 : /*idem*/
Valeur d´indice 8 : /*idem*/
etc etc
or actuellement j´ai ça :
Veuillez saisir les 10 valeurs du tableau :
Valeur d´indice 10 : /*un ptit scanf pour entrer la valeur désirée*/
Valeur d´indice 10 : /*idem*/
Valeur d´indice 10 : /*idem*/
Et le programme avec tentative de correction ^^ :
int main( )
{
int n = 10; /* Taille du tableau*/
float tableau[N_max]; /* Tableau a une dimension de longueur N max avec*/
int b; /* Variable de boucle*/
/* Saisi a l´aide du clavier des N valeurs du tableau */
printf("Veuillez saisir les %d valeurs du tableau \n", n);
for (b=0; b<n; n+1)
{
printf(" Valeur d indice %d : ", n);
scanf("%i", &tableau[b]);
}
/* Valeur de retour du main */
printf(" Fin du programme\n");
return(0);
}
Ah purée l´erreur de *****...
for (b=0; b<n; n+1) si on met for (b=0; b<n; n--) ca fonctionne niquel...
Maintenant j´aimerais que quand toute les valeurs sont données, je puisse toutes les afficher... Je cherche je cherche ^^ ![]()
Alors pour ton printf qui affichait tout le temps 10, je t´ai répondu plus haut : un b dans le printf, par un n.
for (b=0; b<n; n--)
--> C´est super faux ça.
Soit tu incrémentes et tu fais :
for (b=0; b<n; n++)
Soit tu décrémentes et tu fais :
for (b=n-1; b>=0; n--)
Pour les afficher, un for aussi. Réfléchis bien a ce que tu fais, c´est logique ![]()
for (b=0; b<n; n--)
--> C´est super faux ça.
==> Pourquoi c´est faux ?? ? Ca fonctionne pourtant et il s´arrete bien rendu au rang 1...
Alors que si je fais ca :
Soit tu décrémentes et tu fais :
for (b=n-1; b>=0; n--)
==> Il décrémente bien mais va dans les négatifs, pas de limites...
ah merde, faute de frappe de ma part :
for (b=n-1; b>=0; b--)
d´acc, donc ça ce n´est pas faux :
for (b=0; b<n; n--)
ça ramene la limite, mais par contre, ton b reste a 0 dans ton cas. Moi je te conseille ma syntaxe :
for (b=n-1; b>=0; b--)
D´aco do adopté !! ! C´est sûr c´est plus logique que ma synthaxe...^^
Bon alors printf pour le tableau... Je ne sais pas trop quoi mettre en condition pour mon for... Je cherche je cherche ![]()
je te laisse chercher
ça te permettra de bien assimiler la logique du for ![]()
Alors en faisant ça :
int main( )
{
int n = 10; /* Taille du tableau*/
int tableau[n]; /* Tableau a une dimension de longueur N max avec*/
int b; /* Variable de boucle*/
int i = 0; /*Variable servant à l´affichage du tableau*/
/* Saisi a l´aide du clavier des N valeurs du tableau */
printf("Veuillez saisir les %d valeurs du tableau /ATTENTION la saisie commence a la fin du tableau, indice 9 ! \n", n);
for (b=n-1; b>=0; b--)
{
printf(" Valeur d indice %d : ", b);
scanf("%i", &tableau[b]);
}
for (i = 0 ; i < n ; i++)
{
printf("%ld\n", tableau[b]);
}
printf(" Fin du programme\n");
system("PAUSE");
return(0);
}
J´obtiens à l´écran : #include <stdio.h>
int main( )
{
int n = 10; /* Taille du tableau*/
int tableau[n]; /* Tableau a une dimension de longueur N max avec*/
int b; /* Variable de boucle*/
int i = 0; /*Variable servant à l´affichage du tableau*/
/* Saisi a l´aide du clavier des N valeurs du tableau */
printf("Veuillez saisir les %d valeurs du tableau /ATTENTION la saisie commence a la fin du tableau, indice 9 ! \n", n);
for (b=n-1; b>=0; b--)
{
printf(" Valeur d indice %d : ", b);
scanf("%i", &tableau[b]);
}
for (i = 0 ; i < n ; i++)
{
printf("%ld\n", tableau[b]);
}
printf(" Fin du programme\n");
system("PAUSE");
return(0);
}
J´obtiens à l´écran :
Veuillez saisir les 10 valeurs du tableau
du tableau, indice 9 !
Valeur d indice 9 : 1
Valeur d indice 8 : 2
Valeur d indice 7 : 3
Valeur d indice 6 : 6
Valeur d indice 5 : 5
Valeur d indice 4 : 4
Valeur d indice 3 : 7
Valeur d indice 2 : 89
Valeur d indice 1 : 9
Valeur d indice 0 : 6
2293728
2293728
2293728
2293728
2293728
2293728
2293728
2293728
2293728
2293728
Fin du programme
Appuyez sur une touche pour continuer...
J´ai l´impression de progresser un peu nan ? ^^
Un petit indice sur ce qui ne va pas dans mon deuxieme for
?? ?
Trouvé !! !! Si je remplace
for (i = 0 ; i < n ; i++)
{
printf("%ld\n", tableau[b]);
}
Par
for (i = 0 ; i < n ; i++)
{
printf("%ld\n", tableau[i]);
}
Ca fonctionne !
Hmmm nouveau probleme ^^ comment je peux faire pour récupérer les variables contenu dans mon tableau et calculer la moyenne ?? ?
int main( )
{
int main( )
{
int n = 10;
int tableau[n];
int tValeurs=0,moyenne=0;
int b;
int i = 0;
printf("Veuillez saisir les %d valeurs du tableau /ATTENTION la saisie commence a la fin du tableau, indice 9 ! \n", n);
for (b=n-1; b>=0; b--)
{
printf(" Valeur d indice %d : ", b);
scanf("%d", &tableau[b]);//tu avais mis %i
tValeurs=tValeurs+tableau[b];
}
for (i = 0 ; i < n ; i++)
{
printf("%ld\n", tableau[i]);//tu reutilises b hors tu ne mets pas sa valuer à 10
}
printf("total des valeurs:%d",tValeurs);
moyenne=tValeurs/n;
printf("moyenne:%d",moyenne);
printf(" Fin du programme\n");
system("PAUSE");
return(0);
}
printf("%ld\n", tableau[i]);//tu reutilises b hors tu ne mets pas sa valuer à 10
je me suis trompé j´avais pas vu que tu incrementais