fork download
  1. #include <stdio.h>
  2. //sur ideone, les entrées sont à écrire dans la zone de texte "input (stdin)
  3. int max(int a,int b)
  4. {
  5. return a<=b?b:a;
  6. /*
  7.  équivalent à :
  8.  if(a<=b)return b;
  9.  else return a;
  10.  */
  11. }
  12. int min(int a,int b)
  13. {
  14. return a<=b?a:b;
  15. }
  16.  
  17. int intersectionPeriode(int dateD1,int dateF1,int dateD2,int dateF2)
  18. {
  19. return max(dateD1,dateD2) < min(dateF1,dateF2);
  20. //mettre '<=' si on souhaite que la comparaison (1,2,2,3) sont bonne (par exemple).
  21. }
  22.  
  23. void saisirPeriodeInvite(int *dd,int *df)
  24. {
  25. printf("periode : ");
  26. scanf("%d %d",dd,df);
  27. printf("%d %d\n",*dd,*df);///pour ideone, faire un affichage comme en console.
  28. }
  29.  
  30.  
  31. int main (void)
  32. {
  33. int debutPeriode,finPeriode;//la periode à étudier
  34.  
  35. int nbInvite;
  36. int dateD,dateF;//la periode d'un invité
  37.  
  38. int nbSuspect=0;
  39.  
  40. int i;
  41. scanf("%d %d %d",&debutPeriode,&finPeriode,&nbInvite);
  42. printf("periode de l'etude :[%d,%d] nombre d'invite :%d\n",debutPeriode,finPeriode,nbInvite);
  43. for(i=0;i<nbInvite;i++)
  44. {
  45. saisirPeriodeInvite(&dateD,&dateF);
  46. if( intersectionPeriode(debutPeriode,finPeriode,dateD,dateF) )nbSuspect++;
  47. }
  48. printf("nombre de suspect :%d\n",nbSuspect);
  49. return 0;
  50. }
Success #stdin #stdout 0s 9416KB
stdin
10 46 6
5 9
5 50
5 20
20 30
20 100
50 100
stdout
periode de l'etude :[10,46] nombre d'invite :6
periode : 5 9
periode : 5 50
periode : 5 20
periode : 20 30
periode : 20 100
periode : 50 100
nombre de suspect :4