Langage C, aide en prog
Fred0ne
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je suis entrain de coder un tableau qui doit comparer et afficher la date la plus ancienne, or j'ai un pépin je ne me souviens plus comment le faire, pourriez-vous m'aider s'il vous plait ?
Ci-joint le code de mon tableau.
#include <stdio.h>
int main ()
{
int tab [10][4] = {{27,10,1990},
{20,01,1989},
{24,10,1986},
{20,06,1994},
{14,07,1993},
{29,01,1996},
{27,10,1990},
{2,01,1999},
{25,12,1990},
{12,12,2012}};
}
je suis entrain de coder un tableau qui doit comparer et afficher la date la plus ancienne, or j'ai un pépin je ne me souviens plus comment le faire, pourriez-vous m'aider s'il vous plait ?
Ci-joint le code de mon tableau.
#include <stdio.h>
int main ()
{
int tab [10][4] = {{27,10,1990},
{20,01,1989},
{24,10,1986},
{20,06,1994},
{14,07,1993},
{29,01,1996},
{27,10,1990},
{2,01,1999},
{25,12,1990},
{12,12,2012}};
}
A voir également:
- Langage C, aide en prog
- Langage ascii - Guide
- Langage binaire - Guide
- Robot prog - Télécharger - Édition & Programmation
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
6 réponses
Merci mais comment lui dire de comparer chaque ligne ?
Je me doute bien que ça doit être avec if, mais je n'arrive pas à voir comment les ajouter au code.
Je me doute bien que ça doit être avec if, mais je n'arrive pas à voir comment les ajouter au code.
Pas forcément besoin d'un algorithme de tri pour récupérer la date la plus récente.
Il suffit d'utiliser un if dans une boucle while fera l'affaire.
Lorsque tu boucles sur le tableau, tu calcules la format au date américain YYYYMMDD que tu stockes au format nombre et tu mémorises dans une variable dès que tu rencontres une date inférieure à celle stockée.
Sinon ton tableau est mal déclarée : int tab [10][3]
Et enfin n'oublie pas le return 0; final.
Cdlt,
Il suffit d'utiliser un if dans une boucle while fera l'affaire.
Lorsque tu boucles sur le tableau, tu calcules la format au date américain YYYYMMDD que tu stockes au format nombre et tu mémorises dans une variable dès que tu rencontres une date inférieure à celle stockée.
Sinon ton tableau est mal déclarée : int tab [10][3]
Et enfin n'oublie pas le return 0; final.
Cdlt,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour le tableau c'est une erreur de ma part merci de me l'avoir fais remarquer, maintenant en ce qui concerne les points virgule il me semble que mon tableau est bien initialisé car tout peut être mis à la suite donc un seul point virgule sauf erreur de ma part.
Ensuite pourquoi utiliser le système Américain et pas le système Européens ?
Et pour conclure, malgré le fait que vous m'ayez déjà beaucoup guidé je suis toujours plus ou moins perdu, je vois comment utiliser les while et les if mais là je bloque vraiment, pourriez vous s'il vous plait me faire le début du code C pour que je le continu par la suite ? Je ne veux pas que vous m'écriviez tout le code cela dit (sauf si le coeur vous en dit hein xD).
Merci de vos conseils.
Ensuite pourquoi utiliser le système Américain et pas le système Européens ?
Et pour conclure, malgré le fait que vous m'ayez déjà beaucoup guidé je suis toujours plus ou moins perdu, je vois comment utiliser les while et les if mais là je bloque vraiment, pourriez vous s'il vous plait me faire le début du code C pour que je le continu par la suite ? Je ne veux pas que vous m'écriviez tout le code cela dit (sauf si le coeur vous en dit hein xD).
Merci de vos conseils.
Erreur de ma part pour les points virgules. J'ai fumé ^^.
Sinon pour le système américain, c'est qu'il a l'avantage de conserver la croissance.
Par exemple, si A et B sont deux dates correspondant au nombre YYYYMMDD. Si A > B alors A est une date ultérieure à la date B. Avec le système européen, ça ne marche pas.
Rassure-toi, c'est juste le calcul au format américain qui doit être effectué, pas besoin de modifier le tableau.
Tu peux également stocker l'indice pour directement te référer au tableau.
Je te laisse remplir les petits points ;-))).
Cdlt,
Sinon pour le système américain, c'est qu'il a l'avantage de conserver la croissance.
Par exemple, si A et B sont deux dates correspondant au nombre YYYYMMDD. Si A > B alors A est une date ultérieure à la date B. Avec le système européen, ça ne marche pas.
Rassure-toi, c'est juste le calcul au format américain qui doit être effectué, pas besoin de modifier le tableau.
int main(void) { int tab[][3]={ {...}, {...}, ...}; int i; int dateRecente=tab[0]+tab[1]*100+tab[2]*10000; for(i=1;i<sizeof tab / sizeof *tab;i++) { int tmp=...; if (...>...) ...=... } /*la date la plus récente est dateRecente (stocké au format américain)*/ return 0; }
Tu peux également stocker l'indice pour directement te référer au tableau.
Je te laisse remplir les petits points ;-))).
Cdlt,