CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Aide tableaux en C

maxetx
maxetx
Niveau 6
25 octobre 2007 à 10:42:58

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 !

Fvirtman
Fvirtman
Niveau 10
25 octobre 2007 à 10:57:05

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].

maxetx
maxetx
Niveau 6
25 octobre 2007 à 11:04:43

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 :

  1. include <stdio.h>
  2. define N_max 15

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);
}

maxetx
maxetx
Niveau 6
25 octobre 2007 à 11:07:03

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 ?? ?

Fvirtman
Fvirtman
Niveau 10
25 octobre 2007 à 11:11:36

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]

godrik
godrik
Niveau 30
25 octobre 2007 à 11:12:18

rah grillé par fvirtman.
salaud! :)

maxetx
maxetx
Niveau 6
25 octobre 2007 à 11:16:02

Certes certes ^^ un peu de compassion please ^^

Mais ça ne décrémente toujours pas ^^
rahlalala prise de tete... Je cherche je cherche... :)

Fvirtman
Fvirtman
Niveau 10
25 octobre 2007 à 11:21:40

godrik > :content:
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.

maxetx
maxetx
Niveau 6
25 octobre 2007 à 11:26:01

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 ^^ :

  1. include <stdio.h>
  2. define N_max 15

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);
}

maxetx
maxetx
Niveau 6
25 octobre 2007 à 11:33:46

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 ^^ :)

Fvirtman
Fvirtman
Niveau 10
25 octobre 2007 à 11:38:56

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 :)

maxetx
maxetx
Niveau 6
25 octobre 2007 à 11:45:27

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...

Fvirtman
Fvirtman
Niveau 10
25 octobre 2007 à 11:48:35

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--)

maxetx
maxetx
Niveau 6
25 octobre 2007 à 11:55:09

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 :)

Fvirtman
Fvirtman
Niveau 10
25 octobre 2007 à 12:03:08

je te laisse chercher :) ça te permettra de bien assimiler la logique du for :)

maxetx
maxetx
Niveau 6
25 octobre 2007 à 12:10:22

Alors en faisant ça :

  1. include <stdio.h>
  2. include <stdlib.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 : #include <stdio.h>

  1. include <stdlib.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 :rouge: ?? ?

maxetx
maxetx
Niveau 6
25 octobre 2007 à 12:14:18

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 !

maxetx
maxetx
Niveau 6
25 octobre 2007 à 13:16:58

Hmmm nouveau probleme ^^ comment je peux faire pour récupérer les variables contenu dans mon tableau et calculer la moyenne ?? ?

alera
alera
Niveau 4
25 octobre 2007 à 16:11:34
  1. include <stdio.h>
  2. include <stdlib.h>

int main( )
{

  1. include <stdio.h>
  2. include <stdlib.h>

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);
}

alera
alera
Niveau 4
25 octobre 2007 à 19:26:19

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

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment