/***********************************/ /* IN3S02 - TP langage C - Corrigé */ /***********************************/ /* Compilation par : gcc -std=c99 -W -Wall -pedantic -prog.c -o prog */ /**************/ /* EXERCICE 3 */ /**************/ #include int main(void) { printf("Bonjour!\n"); return 0; } /**************/ /* EXERCICE 4 */ /**************/ #include #include int hms2s(int h, int m, int s); void s2jhms(int ns, int* pj, int* ph, int* pm, int* ps); int main(void) { int h0, m0, s0; int nj, nh, nm, ns; scanf("%d %d %d", &h0, &m0, &s0); s2jhms( hms2s(h0,m0,s0), &nj, &nh, &nm, &ns); printf("%dj %dh %dmn %ds\n", nj, nh, nm, ns); return 0; } int hms2s(int h, int m, int s) { return h*3600 + m*60 + s; } void s2jhms(int ns, int* pj, int* ph, int* pm, int* ps) { *pj = ns / (24*3600); ns = ns % (24*3600); *ph = ns / 3600; ns = ns % 3600; *pm = ns / 60; *ps = ns % 60; } /**************/ /* EXERCICE 5 */ /**************/ #include #include #include #define MAX 10 #define MAX1 (MAX+1) typedef char Chaine[MAX1]; /* Ou bien : const int MAX = 10; const int MAX1 = 11; typedef char Chaine[MAX1]; */ void affiche(const Chaine s); int main(void) { int i; Chaine s1, s2, s3; fgets(s1, MAX, stdin); /* fgets saisit aussi le CR !! */ fgets(s2, MAX, stdin); for(i=1; i<=8; i++) { if ( i%2 == 1 ) strcpy(s3,s1); else strcpy(s3,s2); affiche(s3); } return 0; } /* Cette version affiche le CR contenu dans la chaine s */ /* void affiche(const Chaine s) { printf("(%s)\n", s); } */ /* Cette version n'affiche pas le CR contenu dans la chaine s */ void affiche(const Chaine s) { int i; printf("("); for (i=0; s[i]!='\n' && s[i]!='\0'; i++) printf("%c", s[i]); printf(")\n"); } /**************/ /* EXERCICE 6 */ /**************/ #include #include #include #define MAX 10 #define MAX1 (MAX+1) typedef char Chaine[MAX1]; /* Ou bien : const int MAX = 10; const int MAX1 = 11; typedef char Chaine[MAX1]; */ typedef char* PtrChar; void affiche(const PtrChar ps); int main(void) { int i; Chaine s1, s2; PtrChar ps; fgets(s1, MAX, stdin); /* fgets saisit aussi le CR !! */ fgets(s2, MAX, stdin); for(i=1; i<=8; i++) { if ( i%2 == 1 ) ps = s1; else ps = s2; affiche(ps); } return 0; } /* Cette version affiche le CR contenu dans la chaine ps */ /* void affiche(const PtrChar ps) { printf("(%s)\n", ps); } */ /* Cette version n'affiche pas le CR contenu dans la chaine ps */ void affiche(const PtrChar ps) { int i; printf("("); for (i=0; ps[i]!='\n' && ps[i]!='\0'; i++) printf("%c", ps[i]); printf(")\n"); } /**************/ /* EXERCICE 7 */ /**************/ #include #include #include const int INCREMENT = 3 ; typedef double* PtrDouble; void agrandit(PtrDouble * ptab, int *pnbElmts); int main(void) { int i, j, length, n; PtrDouble t; scanf("%d", &length); t = (PtrDouble)malloc(length*sizeof(double)); i=0; do { scanf("%d", &n); if ( i >= length ) agrandit(&t, &length); t[i] = n; i++; } while (n > 0) ; for(j=0; j