/************************************/ /******** exo 1 feuille 7 td *******/ /***********************************/ #include /*question a */ int jour(int n) { return( (n+4) %7 ); } /*question b*/ /*on suppose j entre 1 et 7 compris */ int affiche_jour(int j) { if (j==1) {printf("lundi \n");}; if (j==2) {printf("mardi \n");}; if (j==3) {printf("mercredi \n");}; if (j==4) {printf("jeudi \n");}; if (j==5) {printf("vendredi \n");}; if (j==6) {printf("samedi \n");}; if (j==0) {printf("dimanche \n");} } /*question c*/ void demande_affiche_jour(void) { int n; printf("Donnez le jour \n"); scanf("%d",&n); affiche_jour(jour(n)); } /*question d*/ int jourGen(int j,int n) { return ((n+(j-1)) %7 ); } int main(void) { printf("%d\n",jour(18)); /*affiche 1*/ affiche_jour(0); /*affiche dimanche*/ demande_affiche_jour(); /* pour 18, affiche lundi*/ affiche_jour(jourGen(6,18)); /*affiche lundi*/ return 0; } /************************************/ /******** exo 2 feuille 7 td *******/ /***********************************/ #include int main(void) { int i; int j; int k; for (i=0;i<=9;i=i+1) { for (j=0;j<=9;j=j+1) { k = i-j; if (k>=0) {printf("(%d,%d,%d) ",i,j,k);} } printf("\n"); } return 0; } /* Résultat : */ /* (0,0,0) */ /* (1,0,1) (1,1,0) */ /* (2,0,2) (2,1,1) (2,2,0) */ /* (3,0,3) (3,1,2) (3,2,1) (3,3,0) */ /* (4,0,4) (4,1,3) (4,2,2) (4,3,1) (4,4,0) */ /* (5,0,5) (5,1,4) (5,2,3) (5,3,2) (5,4,1) (5,5,0) */ /* (6,0,6) (6,1,5) (6,2,4) (6,3,3) (6,4,2) (6,5,1) (6,6,0) */ /* (7,0,7) (7,1,6) (7,2,5) (7,3,4) (7,4,3) (7,5,2) (7,6,1) (7,7,0) */ /* (8,0,8) (8,1,7) (8,2,6) (8,3,5) (8,4,4) (8,5,3) (8,6,2) (8,7,1) (8,8,0) */ /* (9,0,9) (9,1,8) (9,2,7) (9,3,6) (9,4,5) (9,5,4) (9,6,3) (9,7,2) (9,8,1) (9,9,0) */ /************************************/ /******** exo 3 feuille 7 td *******/ /***********************************/ #include #include void exo_a(void) { char c; int cpt = 0; c = getchar(); while(c != '#') { cpt = cpt+1; c = getchar(); } printf("le nombre de caractères lus diff de '#' est %d\n",cpt); } void exo_b(void) { char c; char m ; /*memoire du dernier char different lu*/ c = getchar(); m = c; while(c != '#') { if (m!=c) { m = c; printf("%c",m); } c = getchar(); } printf("\n"); } void exo_c(void) { char c; int cpt = 0; char m ; c = getchar(); /*attention "entree" compte comme un caractere*/ while (c != '#') { m = c; cpt = 0; while (c == m) { cpt = cpt +1; c = getchar(); } if (c != '#') {printf("%d%c",cpt,m);} } printf("%d%c\n",cpt,m); } int main(void) { exo_a(); /* ceci est une phrase# */ /* le nombre de caractères lus diff de '#' est 19 */ exo_b(); /* aaaaaaaaaaaaaaaaaaaaaaaaazzerttttttty# */ /* azerty */ exo_c(); /* azeeeeeerrttyyu# */ /* 1a1z6e2r2t2y1u */ return 0; } /************************************/ /******** exo 4 feuille 7 td *******/ /***********************************/ #include #include #include #define MAX 10 /*tire un entier au hasard entre inf et sup COMPRIS*/ int hasard(int inf,int sup) { int rando = rand(); return (inf + (rando % (sup - inf +1))); } /*initialisation du tableau pour test*/ int initTab(int u[MAX]) { int i; for (i=0;imem) {mem = u[i];}; } return mem; } /*maxi case a case*/ /*mem stocke le max global*/ /*pour chaque case, je compare a[i] et b[i], puis le + gros a la var mem */ int max_case_a_case(int a[MAX], int b[MAX], int c[MAX]) { int mem = a[0]; int i; for (i=0;ib[i]) {c[i] = a[i];} else {c[i] = b[i];}; if (c[i]>mem) {mem = c[i];} } return mem; } int main(void) { int res; int tab1[MAX]; int tab2[MAX]; int tab3[MAX]; srand(time(NULL)); initTab(tab1); initTab(tab2); visuTab(tab1); visuTab(tab2); printf("Max du tableau 1 : %d\n",maxTab(tab1)); printf("Max du tableau 2 : %d\n",maxTab(tab2)); res = max_case_a_case(tab1,tab2,tab3); printf("Le max global est : %d\n",res); visuTab(tab3); return 0; } /* [ 7 , 12 , 5 , 6 , 2 , 8 , 2 , 11 , 2 , 10 ] */ /* [ 4 , 13 , 20 , 12 , 1 , 3 , 18 , 20 , 4 , 19 ] */ /* Max du tableau 1 : 12 */ /* Max du tableau 2 : 20 */ /* Le max global est : 20 */ /* [ 7 , 13 , 20 , 12 , 2 , 8 , 18 , 20 , 4 , 19 ] */