fork(2) download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define AGE_PENSION 60
  4. #define AGE_MATURE 18
  5.  
  6. char* getAgeDescriptionByAge(int age)
  7. {
  8. if (age > 4 && age < 21)
  9. return " лет.\n";
  10.  
  11. switch (age%10)
  12. {
  13. case 1:
  14. return " год.\n";
  15. case 2:
  16. case 3:
  17. case 4:
  18. return " года.\n";
  19. default:
  20. return " лет.\n";
  21. }
  22. }
  23.  
  24. void printAgeInfo(int age)
  25. {
  26. char yourAgeString [64] = "Ваш возраст %d ";
  27. char youMatureString [64] = "Вы совершеннолетний %d ";
  28. char ageUntilMatureString [64] = "Вам до совершеннолетия %d ";
  29. char youOnPensionString [64] = "Вы на пенсии %d ";
  30. char ageUntilPensionString [64] = "Вам до пенсии %d ";
  31.  
  32. printf(strcat(yourAgeString, getAgeDescriptionByAge(age)), age);
  33. if (age >= AGE_MATURE)
  34. printf(strcat(youMatureString, getAgeDescriptionByAge(age-AGE_MATURE)), age-AGE_MATURE);
  35. else
  36. printf(strcat(ageUntilMatureString, getAgeDescriptionByAge(AGE_MATURE-age)), AGE_MATURE-age);
  37. if (age >= AGE_PENSION)
  38. printf(strcat(youOnPensionString, getAgeDescriptionByAge(age-AGE_PENSION)), age-AGE_PENSION);
  39. else
  40. printf(strcat(ageUntilPensionString, getAgeDescriptionByAge(AGE_PENSION-age)), AGE_PENSION-age);
  41. }
  42.  
  43. int main() {
  44. // your code goes here
  45. printf("ВВедите количество лет\n");
  46. int age = 0;
  47. scanf("%d", &age);
  48.  
  49. if (age < 0)
  50. printf("некорректный возраст");
  51. printAgeInfo(age);
  52. return 0;
  53. }
Success #stdin #stdout 0s 2172KB
stdin
11
stdout
ВВедите количество лет
Ваш возраст 11  лет.
Вам до совершеннолетия 7  лет.
Вам до пенсии 49  лет.