krtek - Hmotnost a koncentrace

Jak napsat C program Mole - hmotnost a koncentraci v Programovací jazyk C ?


  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. int main() {
  6.     double m1 = 0, w1 = 0, m2 = 0, w2 = 0, m = 0, w = 0, vys = 0, vys1 = 0;
  7.     printf("Hmotnost a koncentrace #1:\n");
  8.     if (scanf("%lf %lf", &m1, &w1) != 2 || m1 < 0 || w1 < 0 || w1 > 1) {
  9.         printf("Nespravny vstup.\n");
  10.         return 0;
  11.     }
  12.     printf("Hmotnost a koncentrace #2:\n");
  13.     if (scanf("%lf %lf", &m2, &w2) != 2 || m2 < 0 || w2 < 0 || w2 > 1) {
  14.         printf("Nespravny vstup.\n");
  15.         return 0;
  16.     }
  17.     printf("Hmotnost a koncentrace vysledku:\n");
  18.     if (scanf("%lf %lf", &m, &w) != 2 || m < 0 || w < 0 || w > 1) {
  19.         printf("Nespravny vstup.\n");
  20.         return 0;
  21.     }
  22.     if (m1 + m2 < m || round(1e12 * (m1 * w1)) + round(1e12 * (m2 * w2)) < round(1e12 * (* w))) {
  23.         printf("Nelze dosahnout.\n");
  24.         return 0;
  25.     }
  26.     if (w1 == w2) {
  27.  
  28.         if (m1 < m && m2 < m) {
  29.             if(m1>m2){
  30.                 vys=m1;
  31.                 vys1=m-m1;        
  32.             }
  33.             else{
  34.             vys = m - m1;
  35.             vys1 = m1;
  36.             }
  37.             printf("%f x #1 + %f x #2 \n", fabs(vys), fabs(vys1));
  38.         } else if (m1 < m && m2 > m) {
  39.             vys = m1;
  40.             vys1 = m - m1;
  41.             printf("%f x #1 + %f x #2 \n", fabs(vys), fabs(vys1));
  42.         } else {
  43.             vys = 0;
  44.             vys1 = m;
  45.             printf("%f x #1 + %f x #2 \n", fabs(vys), fabs(vys1));
  46.         }
  47.     } else {
  48.         if (w1 == w) {
  49.             if (== m1) {
  50.                 vys = m;
  51.                 vys1 = 0;
  52.                 printf("%f x #1 + %f x #2 \n", fabs(vys), fabs(vys1));
  53.                 return 0;
  54.             }
  55.             else if (< m1) {
  56.                 vys = m;
  57.                 vys1 = 0;
  58.                 printf("%f x #1 + %f x #2 \n", fabs(vys), fabs(vys1));
  59.                 return 0;
  60.             } else if (> m1) {
  61.                 printf("Nelze dosahnout.\n");
  62.                 return 0;
  63.             }
  64.         }
  65.         vys = ((* m) - (w2 * m)) / (w1 - w2);
  66.         vys1 = m - vys;
  67.         if (((vys >= 0) && (vys <= m1)) && (((vys1 >= 0) && (vys1 <= m2)))) {
  68.             printf("%f x #1 + %f x #2 \n", fabs(vys), fabs(vys1));
  69.             return 0;
  70.         }    
  71.         else if((vys = m1) || (vys = m2)){
  72.             printf("%f x #1 + %f x #2 \n", fabs(vys), fabs(vys1));
  73.             return 0;
  74.             }
  75.         vys = ((* m) - (w1 * m)) / (w2 - w1);
  76.         vys1 = m - vys;
  77.         if (((vys >= 0) && (vys <= m1)) && (((vys1 >= 0) && (vys1 <= m2)))) {
  78.             printf("%f x #1 + %f x #2 \n", fabs(vys), fabs(vys1));
  79.             return 0;
  80.         }    
  81.         else if((vys = m1) || (vys = m2)){
  82.             printf("%f x #1 + %f x #2 \n", fabs(vys), fabs(vys1));
  83.             return 0;
  84.             }    
  85.         else {
  86.             printf("Nelze dosahnout.\n");
  87.         }
  88.     }
  89.     return 0;
  90. }


Learn More :