Les tableaux et le langage C

Bibi -  
ahcenrr Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -
Voila j'ai deux versions d'un tableau a faire en langage C, malheureusement pour moi, j'y comprend rien. Je voudrai savoir est ce que quelqu'un peut m'aider a comprendre:


Exercice Tableau 1D: Ecrire un programme qui créé un tableau de n cases, n aura été déclaré et initialisé à 10 (il n'est pas demandé ni recommandé de le demander à l'utilisateur pour des raisons de compatibilité de votre programme !)

Le tableau est ensuite rempli de n valeurs aléatoires (pensez à l'exercice de Mme Irma !) , votre programme parcourera le tableau et affichera le nombre de chiffres pairs présents dans le tableau

Exercice Tableau 1D version 2: Ecrire un programme qui créé un tableau de n cases, n aura été déclaré et initialisé à 10 (il n'est pas demandé ni recommandé de le demander à l'utilisateur pour des raisons de compatibilité de votre programme !)

Le tableau est ensuite rempli de n entiers aléatoires.

Votre programme aura déclaré un chiffre appelé score égal à 0 en début de jeu.

Votre programme demandera un nombre de tentatives à l'utilisateur qui sera un entier appelé nbtentative.

Le but du jeu est que l'utilisateur devine le plus grand nombre de chiffres présents dans le tableau en seulement nbtentative tentatives :

Votre programme demandera un chiffre à l'utilisateur....

Le programme parcourera le tableau et vérifiera si ce chiffre est présent, si c'est le cas, le score de votre utilisateur augmente de 1 sinon il n'augmente pas...

A chaque tentative, votre programme affichera son score :

2 bonne(s) réponse(s) sur 5 tentatives


Au pire si quelqu'un a la solution je suis preneur :p. Merci d'avance
A voir également:

4 réponses

Bibi
 
Personne??
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Je ne vois pas la différence entre Exercice Tableau 1D et sa version 2. Est-ce normal ? Problème de copier coller ?

Ensuite, je ne vois pas ce que tu comprends pas. L'énoncé me paraît plutôt clair.
Peux-tu poster ici ce que tu ne comprends pas ou sur quoi tu souhaites des précisions ?

Cdlt,
0
Bibi
 
en fait je savais pas s'il fallai inclure un if dans le code, je suis en biologie et on fait de la programmation lol, je vois pas l'interet ensuite pour moi c'est du charabia. Mais Ghuysmans99 m'a bien montrer ou etait mon erreure j'avais pas la ligne de if ... Je comprend pas en fait comment on faisait pour pouvoir afficher le tableau avec tous les chiffres. J'avais un seul chiffre a chaque fois donc... Ensuite la version 2D doit poser que 5 tentatives pour trouver que le plus grand nombre de chiffre present dans le tableau,enfin si j'ai compris. Il s'agit d'un jeu de devinette lol. J'ai cru comprendre qu'il fallai y mettre des boucles for mais apres pour les condiions, c'est toujours la ou je vois pas ce qu'il faut mettre. Merci.
0
ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   340
 
Bon je te ré-explique l'exo 1D :
Ecrire un programme qui créé un tableau de n cases, n aura été déclaré et initialisé à 10 (il n'est pas demandé de le demander à l'utilisateur).
Y'a moyen de le faire sans aucun problème de compatibilité (j'sais pas ce que t'as comme prof mais il est vraiment pas doué et en plus il ne sait même pas écrire décemment.)
Le tableau est ensuite rempli de n valeurs aléatoires, votre programme parcourra le tableau et affichera le nombre de nombres pairs présents dans le tableau 

Tu auras d'abord besoin d'inclure stdio.h et time.h .
Tu dois créer un tableau de n cases et compter ensuite les N pairs qui s'y trouvent :
int n = 10, tbl[n], nPairs = 0;

Tu le remplis de façon aléatoire et tu comptes le nombre de N pairs dans le tableau :
int i;
srand((int)time(0));
for (i=0;i<n;i++)
{
  tbl[n] = rand();
  if (tbl[n]%2==0) nPairs++;
}

Tu affiches le résultat et tu quittes :
printf("Il y a %d nombres pairs dans le tableau.\n",nPairs);
return 0;
0
Bibi
 
Merci beaucoup. Ca m'aide enormement a comprendre. ^^
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Juste une petite remarque :
int n = 10, tbl[n],
En C-ANSI, ce n'est pas correct. Il faut plutôt utiliser :
#define N 10
int tbl[N];
0
ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   340
 
J'avais aussi hésité à mettre un #define mais dans l'énoncé il est mis "n aura été déclaré et initialisé à 10". Voilà pourquoi je l'ai fait de cette façon. Perso, sans énoncé je n'aurais jamais fait comme ça.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Très juste, j'ai pas fait attention. ;-)))
Il n'empêche que c'est un non sens en C-ANSI car incorrect.
A moins que le prof demande en ISO C99. Chose qui m'étonnerait sinon il n'y a pas besoin de fixer N avec le VLA.
Même si les mots sont mal choisis dans l'énoncé, je pense que le prof attend un #define.
0
Bibi
 
Merci beaucoup a tous, et pour la version deux j'ai reussi ^^.
0
ahcenrr Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   1
 
bonsoir,

je vois tu n'as fait aucun effort pour essayer de résoudre cette exo. tu a fait un copie coller de ton TD. on peut rien pour toi. on va tout de même pas faire l'exo à ta place. essaye au moins commencer. si tu bloque pose tes question ici.
bon courage.
0