C 8
Task8 By zlax on 29th November 2024 06:18:46 PM
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. double calcarea(int, int);
  5. double calcvolume(int, int);
  6. int main(void) {
  7.         int r, h;
  8.         double min = 0;
  9.     for (int i=1; i<=50; i++) {
  10.         for (int j=1; j<=50; j++) {
  11.                 double vs = calcvolume(i, j) / calcarea(i, j);
  12.                 if (vs < 1)
  13.                         if (vs > min) {
  14.                                 min = vs;
  15.                                 r = i; h = j;
  16.                         }
  17.                 if (vs > 1)
  18.                         if ((1 - min) > (vs - 1)) {
  19.                                 min = vs;
  20.                                 r = i; h = j;
  21.                         }
  22.         }
  23.     }
  24.         printf("%d\n", r);
  25.         printf("%d\n", h);
  26. }
  27.  
  28. double calcarea(int r, int h){
  29.         /* https://www.yaklass.ru/p/geometria/11-klass/nakhozhdenie-obemov-tel-10440/kak-naiti-obem-konusa-9287/re-9e3463d0-ce88-4261-8f8b-c681519ffae7 */
  30.         double v, l;
  31.         l = sqrt((double)r * (double)r + (double)h * (double)h);
  32.         v = M_PI * (double)r * (double)r + M_PI * (double)r * l;
  33.         return v;
  34. }
  35.  
  36. double calcvolume(int r, int h){
  37.         /* https://mnogoformul.ru/obem-konusa-formula-i-raschet-onlayn */
  38.         double v;
  39.         v = M_PI * (double)r * (double)r * (double)h / 3;
  40.         return v;
  41. }

Paste is for source code and general debugging text.

Raw Paste

Login or Register to edit or fork this paste. It's free.